--- a/ProjectDefinition.st Wed Oct 12 07:05:13 2016 +0200
+++ b/ProjectDefinition.st Tue Oct 25 12:31:42 2016 +0100
@@ -176,7 +176,7 @@
Alternatively, you may add one method per rule and annotate it by
<file:target:> or <file:target:extends:> annotation. For example,
- to call ant whenever a package is built, add a method like:
+ to call 'ant' whenever a package is built, add a method like:
additionalRuleAnt_make_dot_proto
<file: 'Make.proto' target: 'ant' extends: 'pre_objs' >
@@ -1472,7 +1472,7 @@
the class is installed as autoloaded in the image (i.e. the state in the image is taken).
If false, it is taken from an existing definition in #classNamesAndAttributes"
- |newSpec oldSpec ignored sortedSpec|
+ |newSpec oldSpec ignored|
oldSpec := self classNamesAndAttributesAsSpecArray.
ignored := self ignoredClassNames asSet.
@@ -1498,7 +1498,7 @@
"JV @ 2010-06-19
Force merge default class attributes with existing ones"
newEntry := self mergeDefaultClassAttributesFor: cls with: newEntry.
- newSpec add:newEntry.
+ newSpec add:newEntry.
]
].
].
@@ -1544,7 +1544,7 @@
attributes notEmptyOrNil ifTrue:[
newEntry := newEntry , attributes.
].
- newSpec add:newEntry
+ newSpec add:newEntry.
]
]
]
@@ -2244,7 +2244,8 @@
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."
+ by searching along the inheritance chain of all of my classes.
+ Please take a look at the #referencedPreRequisites method as well."
^ #()
!
@@ -2293,12 +2294,13 @@
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 compiling or loading,
+ 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."
+ by searching all classes (and their packages) which are referenced by my classes.
+ Please also take a look at the #mandatoryPreRequisites method"
^ #()
!
@@ -2319,7 +2321,7 @@
"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."
+ for those, redefine #referencedPrerequisites or #mandatoryPreRequisites."
^ #()
@@ -2923,14 +2925,15 @@
Under win32, this is placed into the dll's file-info.
Other systems may put it elsewhere, or ignore it."
- (
- #(
- 'stx'
- 'exept'
- ) includes:self module) ifTrue:[
- ^ 'eXept Software AG'
- ].
-
+ |m|
+
+ m := self module.
+ (m = 'stx') ifTrue:[
+ ^ 'Claus Gittinger & eXept Software AG'
+ ].
+ (m = 'exept') ifTrue:[
+ ^ 'eXept Software AG'
+ ].
^ 'My Company'
"Modified: / 18-08-2006 / 16:08:20 / cg"
@@ -3078,15 +3081,16 @@
Under win32, this is placed into the dll's file-info.
Other systems may put it elsewhere, or ignore it."
- self module = 'stx' ifTrue:[
+ |m|
+
+ m := self module.
+ m = 'stx' ifTrue:[
"hardwired-default"
- ^ 'Copyright Claus Gittinger 1988-%1\nCopyright eXept Software AG %1'
- bindWith:(Date today year)
- ].
- self module = 'exept' ifTrue:[
+ ^ 'Copyright Claus Gittinger 1988-%1\nCopyright eXept Software AG %1' bindWith:(Date today year)
+ ].
+ m = 'exept' ifTrue:[
"hardwired-default"
- ^ 'Copyright eXept Software AG %1'
- bindWith:(Date today year)
+ ^ 'Copyright eXept Software AG %1' bindWith:(Date today year)
].
^ 'My CopyRight or CopyLeft'
@@ -4981,6 +4985,7 @@
^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
! !
+
!ProjectDefinition class methodsFor:'file templates'!
autopackage_default_dot_apspec
@@ -5346,7 +5351,7 @@
plist at:'CFBundleVersion' put:(self fileVersion asString).
plist at:'LSMinimumSystemVersion' put:'10.6'.
"/ plist at:'CFBundleDevelopmentRegion' put:'English'.
- "/ plist at:'CFBundleExecutable' put:(self executableName).
+ plist at:'CFBundleExecutable' put:(self applicationName).
self isLibraryDefinition ifTrue:[
plist at:'CFBundleName' put:(self package copyReplaceAny:':/' with:$.).
@@ -5665,7 +5670,7 @@
(self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
"/ thisContext fullPrintAll.
- Transcript show:'unloading '; showCR:self name.
+ Logger info:'unloading %1' with:self name.
].
self activityNotification:'Executing pre-unload action'.
@@ -5878,12 +5883,16 @@
newSpec do:[:entry |
|clsName clsOrNil|
- clsName := entry isArray ifTrue:[ entry first ] ifFalse:[ entry ].
- clsOrNil := Smalltalk classNamed:clsName.
- (clsOrNil notNil and:[clsOrNil isLoaded]) ifTrue:[
- loadedClasses add:clsOrNil.
- ] ifFalse:[
+ (entry isArray and:[entry includes:#autoload]) ifTrue:[
itemsForUnloadedClasses add:entry.
+ ] ifFalse:[
+ clsName := entry isArray ifTrue:[ entry first ] ifFalse:[ entry ].
+ clsOrNil := Smalltalk classNamed:clsName.
+ (clsOrNil notNil and:[clsOrNil isLoaded]) ifTrue:[
+ loadedClasses add:clsOrNil.
+ ] ifFalse:[
+ itemsForUnloadedClasses add:entry.
+ ]
]
].
"/ and sort by load order
@@ -7016,11 +7025,11 @@
!
unloadAllClasses
- Transcript showCR:'unloading not yet fully supported'
+ Logger warning:'unloading not yet fully supported'
!
unloadClassLibrary
- Transcript showCR:'unloading not yet fully supported'
+ Logger warning:'unloading not yet fully supported'
!
unloadSubProjects