jv_cface.st
changeset 34 834ca32d06b2
parent 33 f87d54770abe
child 40 7d1e77b6115e
--- a/jv_cface.st	Fri Dec 26 23:53:37 2014 +0100
+++ b/jv_cface.st	Sun Dec 28 22:29:51 2014 +0100
@@ -10,6 +10,20 @@
 
 !jv_cface class methodsFor:'description'!
 
+mandatoryPreRequisites
+    "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."
+
+    ^ #(
+        #'stx:goodies/smaCC'    "SmaCC::SmaCCParser - superclass of Cface::CDefinitionParser"
+        #'stx:libbasic'    "LibraryDefinition - superclass of jv_cface"
+    )
+!
+
 preRequisites
     "list all required packages.
      This list can be maintained manually or (better) generated and
@@ -23,6 +37,28 @@
         #'stx:libbasic'    "Object - superclass of Cface::CDerivedTypeNode "
         #'stx:libbasic3'    "Change - superclass of extended ClassChange "
     )
+!
+
+referencedPreRequisites
+    "list packages which are a prerequisite, because they contain
+     classes which are referenced by my classes.
+     We do not need these packages as a prerequisite for loading or compiling.
+     This method is generated automatically,
+     by searching all classes (and their packages) which are referenced by my classes."
+
+    ^ #(
+        #'stx:libbasic3'    "ChangeSet - referenced by Cface::Generator>>initialize"
+    )
+!
+
+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 requiredPrerequisites."
+
+    ^ #(
+    )
 ! !
 
 !jv_cface class methodsFor:'description - contents'!
@@ -49,6 +85,7 @@
         #'Cface::CairoMapping'
         #'Cface::GTKMapping'
         #'Cface::Generator'
+        #'Cface::Libgit2Mapping'
         #'Cface::SVNMapping'
         #'Cface::SmalltalkX'
         #'Cface::TypeCollector'
@@ -82,16 +119,14 @@
         #'Cface::CWCharNode'
         #'Cface::CStructNode'
         #'Cface::CUnionNode'
-        #'Cface::Libgit2Mapping'
     )
 !
 
 extensionMethodNames
-    "lists the extension methods which are to be included in the project.
-     Entries are 2-element array literals, consisting of class-name and selector."
+    "list class/selector pairs of extensions.
+     A correponding method with real names must be present in my concrete subclasses"
 
     ^ #(
-        ClassDefinitionChange nameSpaceName:
         Stream tab4
     )
 ! !