diff -r f87d54770abe -r 834ca32d06b2 jv_cface.st --- 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 ) ! !