ProjectDefinition.st
branchjv
changeset 19967 9b1443c2aab1
parent 19912 ca84ec5f80a7
parent 19955 823336f6198b
child 19986 024e50695cb9
--- a/ProjectDefinition.st	Wed Jun 08 14:07:35 2016 +0100
+++ b/ProjectDefinition.st	Thu Jun 09 01:47:28 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2006 by eXept Software AG
               All Rights Reserved
@@ -2746,7 +2748,6 @@
     "Created: / 18-08-2006 / 12:51:38 / cg"
 ! !
 
-
 !ProjectDefinition class methodsFor:'description - project information'!
 
 applicationAdditionalIconFileNames
@@ -3861,15 +3862,14 @@
 !
 
 builder_baseline_dot_rbspec_packages
-    ^ String streamContents:
-            [:s |
-            self allPreRequisitesSorted do:
-                    [:packageId |
-                    s
-                        nextPutAll:('  package "%1"' bindWith:packageId);
-                        cr ] ].
+    ^ String streamContents:[:s |
+        self allPreRequisitesWithMandatorySorted do: [:packageId |
+            s nextPutLine:('  package "%1"' bindWith:packageId).
+        ] 
+    ].
 
     "Created: / 24-02-2011 / 11:59:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2016 / 14:32:44 / cg"
 !
 
 classLine_mappings:aClassName
@@ -4790,7 +4790,6 @@
     ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
 ! !
 
-
 !ProjectDefinition class methodsFor:'file templates'!
 
 autopackage_default_dot_apspec
@@ -6909,6 +6908,35 @@
     ]
 !
 
+allMandatoryPreRequisites
+    "answer all (recursive) mandatory prerequisite project ids of myself - in random order."
+
+    ^ self allPreRequisites:#effectiveMandatoryPreRequisites.
+
+    "
+     stx_libbasic allMandatoryPreRequisites 
+     stx_libbasic2 allMandatoryPreRequisites
+     stx_libview2 allMandatoryPreRequisites 
+     stx_libcomp allMandatoryPreRequisites  
+    "
+
+    "Created: / 06-06-2016 / 12:19:39 / cg"
+!
+
+allMandatoryPreRequisitesSorted
+    [
+        ^ self allPreRequisitesSorted:#effectiveMandatoryPreRequisites
+    ] on:Error do:[:ex |
+        (self confirm:(self name,' [warning]: cycle in prerequisites:' ,, Character cr, '    ', (ex parameter printStringWithSeparator:' -> ') ,, Character cr,  'Proceed with incomplete (mandatory) prerequites?'))
+        ifFalse:[
+            AbortOperationRequest raise
+        ].
+        ^ self allPreRequisitesSorted:#mandatoryPreRequisites
+    ].
+
+    "Created: / 06-06-2016 / 12:20:40 / cg"
+!
+
 allPreRequisites
     "answer all (recursive) prerequisite project ids of myself - in random order."
 
@@ -7093,6 +7121,22 @@
     "Modified: / 05-06-2014 / 12:22:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+allPreRequisitesWithMandatorySorted
+    "a list of all prerequisites (mandatory and non-mandatory,
+     with the mandatory ones coming first and being sorted by dependency"
+
+    |pre mandatory|
+
+    mandatory := self allMandatoryPreRequisitesSorted.
+    pre := OrderedSet withAll:mandatory.
+    self allPreRequisites do:[:each |
+        (mandatory includes:each) ifFalse:[ pre add: each ]
+    ].
+    ^ pre
+
+    "Created: / 06-06-2016 / 14:30:25 / cg"
+!
+
 allReferences
     "answer all (recursive) projects to which I refer - in random order."