--- 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
)
! !