ProjectDefinition.st
branchjv
changeset 20727 fb8c5591428b
parent 20599 c7eebeef73a8
parent 20673 1f955f65538d
child 21024 8734987eb5c7
--- 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