#BUGFIX by cg
authorClaus Gittinger <cg@exept.de>
Tue, 22 Jan 2019 14:45:56 +0100
changeset 23629 2709395b56a9
parent 23628 8a9baee8f42a
child 23630 484d0fd2e425
#BUGFIX by cg class: ProjectDefinition class changed: #effectiveSubProjects: FIX: care for a package to be both in the prereqs and in the subProjects, to NOT be listed twice in the makefile rules. This has lead to an error in make (too many rules for...)
ProjectDefinition.st
--- a/ProjectDefinition.st	Tue Jan 22 14:02:04 2019 +0100
+++ b/ProjectDefinition.st	Tue Jan 22 14:45:56 2019 +0100
@@ -1681,32 +1681,40 @@
     "get the subProjects, that are not excluded.
      osSymbol can be #win32 or #unix (for now)."
 
-    |subProjects|
-
-    subProjects := (self subProjects, self includedInSubProjects) collect:[:eachLine|
-			eachLine isString ifTrue:[
-			    eachLine
-			] ifFalse:[eachLine second = osSymbol ifTrue:[
-			    eachLine first.
-			] ifFalse:[
-			    nil.
-			]].
-		   ] as:OrderedSet.
+    |prereqs subProjects|
+
+    prereqs := self allPreRequisites.
+    
+    subProjects := (self subProjects, self includedInSubProjects) 
+                        collect:[:eachLine|
+                            |prj|
+                            
+                            eachLine isString ifTrue:[
+                                prj := eachLine
+                            ] ifFalse:[
+                                eachLine second = osSymbol ifTrue:[
+                                    prj := eachLine first.
+                                ].
+                            ].
+                            (prereqs includes:prj) ifTrue:[ prj := nil].
+                            prj.
+                       ] as:OrderedSet.
 
     subProjects remove:self package ifAbsent:[].
     subProjects remove:nil ifAbsent:[].
 
     self excludedFromSubProjects do:[:eachLine|
-	eachLine isString ifTrue:[
-	    subProjects remove:eachLine ifAbsent:[].
-	] ifFalse:[eachLine second = osSymbol ifTrue:[
-	    subProjects remove:eachLine first ifAbsent:[].
-	]].
+        eachLine isString ifTrue:[
+            subProjects remove:eachLine ifAbsent:[].
+        ] ifFalse:[eachLine second = osSymbol ifTrue:[
+            subProjects remove:eachLine first ifAbsent:[].
+        ]].
     ].
 
     ^ subProjects
 
     "Created: / 17-01-2017 / 16:16:03 / stefan"
+    "Modified: / 22-01-2019 / 14:42:51 / Claus Gittinger"
 !
 
 excludedFromPreRequisites_code
@@ -2943,6 +2951,7 @@
     "Created: / 23-01-2007 / 19:08:27 / cg"
 ! !
 
+
 !ProjectDefinition class methodsFor:'description - project information'!
 
 applicationAdditionalIconFileNames
@@ -5053,6 +5062,7 @@
     ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
 ! !
 
+
 !ProjectDefinition class methodsFor:'file templates'!
 
 autopackage_default_dot_apspec
@@ -8395,10 +8405,6 @@
     "Modified: / 20-09-2006 / 15:00:00 / cg"
 !
 
-isPluginDefinition
-    ^ false
-!
-
 isProjectDefinition
     "concrete i.e. not abstract"