#FEATURE by cg draft
authorClaus Gittinger <cg@exept.de>
Fri, 12 Oct 2018 12:45:59 +0200
changeset 3600 872b1d9a74f8
parent 3599 5b4499069510
child 3601 9afa4a73568a
#FEATURE by cg class: stx_libtool2 class added: #subProjects comment/format in: #extensionMethodNames #mandatoryPreRequisites changed: #classNamesAndAttributes #referencedPreRequisites
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