--- a/ProjectDefinition.st Fri Oct 23 14:27:46 2009 +0200
+++ b/ProjectDefinition.st Fri Oct 23 16:22:57 2009 +0200
@@ -1057,6 +1057,37 @@
^ subProjects
!
+excludeClasses:toExclude usingCompiler:generator
+ |oldSpec newSpec newCode|
+
+ oldSpec := self classNamesAndAttributes.
+ newSpec := oldSpec copy.
+
+ toExclude do:[:eachClassToExclude |
+ |className|
+ className := eachClassToExclude theNonMetaclass name.
+ (self allClassNames includes:className) ifTrue:[
+ |idx|
+
+ idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
+ idx ~~ 0 ifTrue:[
+ newSpec := newSpec copyWithoutIndex:idx.
+ ].
+ ].
+ ].
+
+ newSpec = oldSpec ifTrue: [^ self].
+
+ newCode := self classNamesAndAttributes_codeFor:newSpec.
+
+ generator
+ compile:newCode
+ forClass:self theMetaclass
+ inCategory:'description - contents'.
+
+ "Created: / 30-08-2007 / 18:28:28 / cg"
+!
+
extensionMethodNames_code
^ self extensionMethodNames_code_ignoreOldEntries:true
@@ -1179,6 +1210,42 @@
"Modified: / 10-10-2006 / 22:02:24 / cg"
!
+includeClasses:toInclude usingCompiler:compiler
+ |oldSpec newSpec newCode|
+
+ oldSpec := self classNamesAndAttributes.
+ newSpec := oldSpec copy.
+
+ toInclude do:[:eachClassToInclude |
+ |className|
+
+ className := eachClassToInclude theNonMetaclass name.
+ (self compiled_classNames includes:className) ifFalse:[
+ | idx entry|
+
+ idx := oldSpec findFirst:[:entry | entry = className or:[entry first = className]].
+ idx == 0 ifTrue:[
+ newSpec := newSpec copyWith:(Array with:className)
+ ] ifFalse:[
+ entry := newSpec at:idx.
+ entry isArray ifTrue:[
+ entry := entry copyWithout:#autoload
+ ].
+ newSpec at:idx put:entry
+ ].
+ ].
+ ].
+
+ newSpec = oldSpec ifTrue: [^ self].
+
+ newCode := self classNamesAndAttributes_codeFor:newSpec.
+
+ compiler
+ compile:newCode
+ forClass:self theMetaclass
+ inCategory:'description - contents'.
+!
+
legalCopyright_code
^ String streamContents:[:s |
s nextPutLine:'legalCopyright'.
@@ -1194,6 +1261,44 @@
"Created: / 18-08-2006 / 16:21:01 / cg"
!
+makeClassesAutoloaded:toMakeAutoloaded usingCompiler:generator
+ |oldSpec newCode newSpec|
+
+ oldSpec := self classNamesAndAttributes.
+ newSpec := oldSpec copy.
+
+ toMakeAutoloaded do:[:eachClassToMakeAutoloaded |
+ |className|
+
+ className := eachClassToMakeAutoloaded theNonMetaclass name.
+ (self autoloaded_classNames includes:className) ifFalse:[
+ |idx entry|
+
+ idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
+ idx == 0 ifTrue:[
+ newSpec := newSpec copyWith:(Array with:className with:#autoload)
+ ] ifFalse:[
+ entry := newSpec at:idx.
+ entry isArray ifTrue:[
+ entry := (entry copyWithout:#autoload) copyWith:#autoload.
+ ] ifFalse:[
+ entry := Array with:entry with:#autoload
+ ].
+ newSpec at:idx put:entry.
+ ].
+ ].
+ ].
+
+ newSpec = oldSpec ifTrue: [^ self].
+
+ newCode := self classNamesAndAttributes_codeFor:newSpec.
+
+ generator
+ compile:newCode
+ forClass:self theMetaclass
+ inCategory:'description - contents'.
+!
+
preRequisites_code
"generate the code of the #preRequisites method"
@@ -4741,11 +4846,11 @@
!ProjectDefinition class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.264 2009-10-22 17:34:44 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.265 2009-10-23 14:22:57 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.264 2009-10-22 17:34:44 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.265 2009-10-23 14:22:57 cg Exp $'
! !
ProjectDefinition initialize!