ProjectDefinition.st
changeset 20527 61e0576ed0fe
parent 20522 3f050234feeb
child 20546 92618d700b74
--- a/ProjectDefinition.st	Tue Oct 04 12:44:59 2016 +0200
+++ b/ProjectDefinition.st	Tue Oct 04 12:56:58 2016 +0200
@@ -1807,6 +1807,7 @@
     |preRequisites|
 
     preRequisites := self searchForPreRequisites first.
+    preRequisites removeAllKeys:self excludedFromMandatoryPreRequisites ifAbsent:[].
     preRequisites removeAllKeys:self excludedFromPreRequisites ifAbsent:[].
 
     ^ String streamContents:[:s |
@@ -1894,6 +1895,7 @@
     preRequisites := preRequisitesColl second.
     preRequisites
         removeAllKeys:self excludedFromPreRequisites ifAbsent:[];
+        removeAllKeys:self excludedFromRequiredPreRequisites ifAbsent:[];
         removeAllKeys:preRequisitesColl first keys ifAbsent:[].  "remove the mandatory prerequisites"
 
     ^ String streamContents:[:s |
@@ -2051,9 +2053,32 @@
 
 !ProjectDefinition class methodsFor:'description'!
 
-excludedFromPreRequisites
+excludedFromMandatoryPreRequisites
     "list packages which are to be explicitely excluded from the automatic constructed
-     prerequisites list. If empty, everything that is found along the inheritance of any of
+     mandatory prerequisites list. 
+     If empty, everything that is found along the inheritance of any of
+     my classes is considered to be a prerequisite package."
+
+    ^ #()
+!
+
+excludedFromPreRequisites
+    "obsolete; temporarily, this is still called for, but will eventually vanish.
+    
+     List packages which are to be explicitely excluded from the automatic constructed
+     prerequisites lists (both). 
+     If empty, everything that is found along the inheritance of any of
+     my classes is considered to be a prerequisite package."
+
+    ^ #()
+
+    "Modified: / 17-08-2006 / 19:48:59 / cg"
+!
+
+excludedFromRequiredPreRequisites
+    "list packages which are to be explicitely excluded from the automatic constructed
+     required prerequisites list. 
+     If empty, everything that is found along the inheritance of any of
      my classes is considered to be a prerequisite package."
 
     ^ #()
@@ -2102,7 +2127,8 @@
 !
 
 preRequisites
-    "list packages which are required as a prerequisite."
+    "list packages which are required as a prerequisite (both mandatory and referenced).
+     This is used to build dependency chains in makefiles"
 
     "use an OrderedSet here, so that mandatory prerequisites come first"
 
@@ -7138,6 +7164,7 @@
         ^ OrderedSet new
             addAll:self mandatoryPreRequisites;
             "/ addAll:self includedInPreRequisites;
+            removeAllFoundIn:self excludedFromMandatoryPreRequisites;
             removeAllFoundIn:self excludedFromPreRequisites;
             yourself.
     ].
@@ -7146,6 +7173,7 @@
     ^ Set new
         addAll:self preRequisites;
         addAll:self includedInPreRequisites;
+        removeAllFoundIn:self excludedFromMandatoryPreRequisites;
         removeAllFoundIn:self excludedFromPreRequisites;
         remove:self package ifAbsent:[];
         yourself.
@@ -7155,8 +7183,7 @@
     "get the preRequisites, that are not excluded.
      This method appears to be obsolete, because its functionality
      is now included in #preRequisites.
-     But is to be kept for backward compatibilty with old
-     existing subclasses."
+     But is to be kept for backward compatibilty with old existing subclasses."
 
     self mandatoryPreRequisites notEmpty ifTrue:[
         "this is a new subclass - avoid overhead"