# HG changeset patch # User Claus Gittinger # Date 1539341159 -7200 # Node ID 872b1d9a74f851b48b6dbffb0911ba10702f8713 # Parent 5b44990695108298e3005e969941f996328f6c0e #FEATURE by cg class: stx_libtool2 class added: #subProjects comment/format in: #extensionMethodNames #mandatoryPreRequisites changed: #classNamesAndAttributes #referencedPreRequisites diff -r 5b4499069510 -r 872b1d9a74f8 stx_libtool2.st --- a/stx_libtool2.st Fri Oct 12 11:32:55 2018 +0200 +++ b/stx_libtool2.st Fri Oct 12 12:45:59 2018 +0200 @@ -70,39 +70,52 @@ ! mandatoryPreRequisites - "list all required mandatory packages. - Packages are mandatory, if they contain superclasses of the package's classes - or classes which are extended by this package. - This list can be maintained manually or (better) generated and - updated by scanning the superclass hierarchies - (the browser has a menu function for that) - However, often too much is found, and you may want to explicitely - exclude individual packages in the #excludedFromPreRequisites method." + "list packages which are mandatory as a prerequisite. + This are packages containing superclasses of my classes and classes which + are extended by myself. + They are mandatory, because we need these packages as a prerequisite for loading and compiling. + This method is generated automatically, + by searching along the inheritance chain of all of my classes. + Please take a look at the #referencedPreRequisites method as well." ^ #( - #'stx:libbasic' "Array - superclass of DataSetBuilder::Row " - #'stx:libview' "GraphicsContext - superclass of UIGalleryView::Palette " - #'stx:libview2' "ResourceSpecEditor - superclass of TabListEditor " - #'stx:libwidg' "ListView - superclass of UIPainter::TreeView " - #'stx:libwidg2' "HierarchicalItem - superclass of MenuEditor::RegularMenuItem " + #'stx:libbasic' "Array - superclass of DataSetBuilder::Row" + #'stx:libview' "DisplaySurface - superclass of UIGalleryView" + #'stx:libview2' "ActiveHelp - superclass of FlyByWindowInformation" + #'stx:libwidg' "ListView - superclass of UIPainter::TreeView" + #'stx:libwidg2' "AbstractHierarchicalItem - superclass of MenuEditor::ActionItem" ) ! referencedPreRequisites - "list all packages containing classes referenced by the packages's members. - This list can be maintained manually or (better) generated and - updated by looking for global variable accesses - (the browser has a menu function for that) - However, often too much is found, and you may want to explicitely - exclude individual packages in the #excludedFromPreRequisites method." + "list packages which are a prerequisite, because they contain + classes which are referenced by my classes. + These packages are NOT needed as a prerequisite for compiling or loading, + however, a class from it may be referenced during execution and having it + unloaded then may lead to a runtime doesNotUnderstand error, unless the caller + includes explicit checks for the package being present. + This method is generated automatically, + by searching all classes (and their packages) which are referenced by my classes. + Please also take a look at the #mandatoryPreRequisites method" ^ #( - #'stx:libbasic2' "TextStream - referenced by Tools::ProjectBuilder>>build " - #'stx:libbasic3' "CVSSourceCodeManager - referenced by Tools::ObjectModuleInformation>>showInfoForClassLib: " - #'stx:libcomp' "ObjectFileLoader - referenced by Tools::ObjectModuleInformation>>postBuildWith: " - #'stx:libhtml' "HTMLDocumentView - referenced by MethodFinderWindow>>openHTMLDocumentation " - #'stx:libtool' "SmalltalkCodeGeneratorTool - referenced by MenuEditor>>doGenerateAspectMethods " - #'stx:libui' "HorizontalPanelViewSpec - referenced by UIPainterView>>groupSelectionWithLayout: " + #'stx:goodies/refactoryBrowser/parser' "ParseTreeSearcher - referenced by Tools::InternationalLanguageTranslationEditor>>extractTranslationsFromHelpSpecMethod:" + #'stx:libbasic2' "ActorStream - referenced by Tools::ProjectBuilder>>buildWithColorizedOutputTo:" + #'stx:libbasic3' "AbstractSourceCodeManager - referenced by Tools::ProjectBuilderAssistantApplication>>checkSourceCodeManagerType" + #'stx:libcomp' "ObjectFileLoader - referenced by Tools::ObjectModuleInformation>>postBuildWith:" + #'stx:libhtml' "HTMLDocumentView - referenced by MethodFinderWindow>>openHTMLDocumentation" + #'stx:libtool' "AbstractLauncherApplication - referenced by Tools::ObjectModuleInformation>>loadPackage" + #'stx:libui' "DataSetColumnSpec - referenced by DataSetBuilder>>columns:" + ) +! + +subProjects + "list packages which are known as subprojects. + The generated makefile will enter those and make there as well. + However: they are not forced to be loaded when a package is loaded; + for those, redefine #referencedPrerequisites or #mandatoryPreRequisites." + + ^ #( ) ! ! @@ -136,28 +149,15 @@ DataSetBuilder DirectoryView FlyByWindowInformation - (HierarchicalListEditor autoload) ImageEditor MenuEditor MethodFinderWindow - (MethodSelectionBrowser autoload) - (ProjectBrowser autoload) - (STXInstaller autoload) SelectionBrowser - (ShellView autoload) - (SnapShotImage autoload) - (SnapShotImageMemory autoload) TabListEditor - (#'Tools::InternationalLanguageTranslationEditor' autoload) - (#'Tools::NewInspectorList' autoload) - (#'Tools::NewInspectorListView' autoload) - (#'Tools::NewInspectorPanelView' autoload) - (#'Tools::NewInspectorView' autoload) + #'Tools::InternationalLanguageTranslationEditor' #'Tools::ObjectModuleInformation' #'Tools::ProjectBuilder' #'Tools::ProjectBuilderAssistantApplication' - (#'Tools::ProjectDefinitionEditor' autoload) - (#'Tools::ViewTreeInspectorApplication' autoload) UIGalleryView UIHelpTool UILayoutTool @@ -170,12 +170,27 @@ FileSelectionBrowser ResourceSelectionBrowser UIPainterView + (HierarchicalListEditor autoload) + (MethodSelectionBrowser autoload) + (ProjectBrowser autoload) + (STXInstaller autoload) + (ShellView autoload) + (SnapShotImage autoload) + (SnapShotImageMemory autoload) + (#'Tools::NewInspectorList' autoload) + (#'Tools::NewInspectorListView' autoload) + (#'Tools::NewInspectorPanelView' autoload) + (#'Tools::NewInspectorView' autoload) + (#'Tools::ProjectDefinitionEditor' autoload) + (#'Tools::ViewTreeInspectorApplication' autoload) ) ! extensionMethodNames "lists the extension methods which are to be included in the project. - Entries are pairwise elements, consisting of class-name and selector." + Entries are 2-element array literals, consisting of class-name and selector. + A correponding method with real names must be present in my concrete subclasses + if it has extensions." ^ #( Image edit