ProjectBuilder.st
changeset 2972 7db782e25d01
parent 2971 e10937c35748
child 2974 8cf2b51872fd
--- a/ProjectBuilder.st	Mon Mar 11 20:20:35 2013 +0100
+++ b/ProjectBuilder.st	Mon Mar 11 21:09:28 2013 +0100
@@ -16,7 +16,8 @@
 Object subclass:#ProjectBuilder
 	instanceVariableNames:'package projectDefinitionClass sourceCodeManager buildDirectory
 		myWorkingDirectory mySTXTopDirectory myTopDirectory outputStream
-		makeExeOnly usedCompiler stdOut stdErr isQuickBuild isLocalBuild'
+		makeExeOnly makeQuick usedCompiler stdOut stdErr isQuickBuild
+		isLocalBuild'
 	classVariableNames:'PreviousBuildDirectory'
 	poolDictionaries:''
 	category:'System-Support-Projects'
@@ -100,7 +101,7 @@
                 'mingw' "/ experimental; free
              )
         ].
-        ^ #('bcc' 'vc' "'lcc' 'mingw'" )
+        ^ #('bcc' 'vc' 'mingw' )
     ].
     ^ #('gcc')
 
@@ -164,10 +165,22 @@
     isQuickBuild := aBoolean.
 !
 
+makeExeOnly
+    ^ (makeExeOnly ? false)
+!
+
 makeExeOnly:aBoolean
     makeExeOnly := aBoolean.
 !
 
+makeQuick
+    ^ (makeQuick ? false)
+!
+
+makeQuick:aBoolean
+    makeQuick := aBoolean.
+!
+
 package:aPackageIDOrSymbol
     package := aPackageIDOrSymbol asPackageId.
 !
@@ -299,18 +312,21 @@
     myTopDirectory := myTopDirectory asFilename.
     mySTXTopDirectory := myTopDirectory / 'stx'.
 
-    self setupBuildDirectory.
-    self activityNotification:'Generating stc directory...'.
-    self copySTCDirectoryForBuild.
+    self makeQuick ifFalse:[
+        self setupBuildDirectory.
+        self activityNotification:'Generating stc directory...'.
+        self copySTCDirectoryForBuild.
+    ].
     self activityNotification:'Generating source files...'.
     self generateSourceFiles.
-    self activityNotification:'Copying dlls for linkage...'.
-    self copyDLLsForLinkage.
-    self activityNotification:'Copying support files for compilation and linkage...'.
-    self copySupportFilesForCompilation.
-    self copySupportFilesForLinkage.
-    self copyStartupFilesFromSmalltalk.
-
+    self makeQuick ifFalse:[
+        self activityNotification:'Copying dlls for linkage...'.
+        self copyDLLsForLinkage.
+        self activityNotification:'Copying support files for compilation and linkage...'.
+        self copySupportFilesForCompilation.
+        self copySupportFilesForLinkage.
+        self copyStartupFilesFromSmalltalk.
+    ].
     self activityNotification:'Executing make...'.
     self makeWithOutputTo:stdOut errorTo:stdErr.
 
@@ -602,8 +618,8 @@
         ].
         usedCompiler = 'mingw' ifTrue:[
             files := files , #( 
-                        'librun/objvc/librun.dll'   "/ linkage is against vc version!!
-                        'lib/vc/librun.lib'
+                        'librun/objmingw/librun.dll'   "/ linkage is against vc version!!
+                        'lib/mingw/librun.lib'
                     ).
         ].
     ] ifFalse:[
@@ -836,33 +852,34 @@
             ].
         ].    
     ].
+    self makeQuick ifFalse:[
+        "/ generate header files in prerequisite packages...
+        (projectDefinitionClass allPreRequisites)
+        do:[:eachPackageToFileout |
+            |packageId packageDef packageModule packageDirectory packageTargetDir|
 
-    "/ generate header files in prerequisite packages...
-    (projectDefinitionClass allPreRequisites)
-    do:[:eachPackageToFileout |
-        |packageId packageDef packageModule packageDirectory packageTargetDir|
-
-        packageId := eachPackageToFileout asPackageId.
-        packageModule := packageId module.
-        packageDirectory := packageId directory.
-        packageTargetDir := (buildDirectory / packageModule / packageDirectory) recursiveMakeDirectory.
+            packageId := eachPackageToFileout asPackageId.
+            packageModule := packageId module.
+            packageDirectory := packageId directory.
+            packageTargetDir := (buildDirectory / packageModule / packageDirectory) recursiveMakeDirectory.
 
-        packageDef := packageId projectDefinitionClass.
-        (packageDef compiled_classNames_common ,
-        packageDef compiled_classNamesForPlatform) do:[:eachClassName |
-            |cls|
+            packageDef := packageId projectDefinitionClass.
+            (packageDef compiled_classNames_common ,
+            packageDef compiled_classNamesForPlatform) do:[:eachClassName |
+                |cls|
 
-            cls := Smalltalk classNamed:eachClassName.
-            "/ self assert:cls isLoaded.
-            cls isNil ifTrue:[
-                stdErr nextPutLine:('Missing class: ',eachClassName, ' (not present in system. Warning only:subclasses of it will not be compiled)').
-            ] ifFalse:[
-                cls isLoaded ifTrue:[    
-                    self createHeaderFileFor:cls in:packageTargetDir
-                ]
+                cls := Smalltalk classNamed:eachClassName.
+                "/ self assert:cls isLoaded.
+                cls isNil ifTrue:[
+                    stdErr nextPutLine:('Missing class: ',eachClassName, ' (not present in system. Warning only:subclasses of it will not be compiled)').
+                ] ifFalse:[
+                    cls isLoaded ifTrue:[    
+                        self createHeaderFileFor:cls in:packageTargetDir
+                    ]
+                ].
             ].
+            self copyResourcesForPackage:eachPackageToFileout.
         ].
-        self copyResourcesForPackage:eachPackageToFileout.
     ].
 
 "/    stx_libbasic2 preRequisitesForBuilding#(#'stx:libbasic')
@@ -929,7 +946,7 @@
             inDirectory:(buildDirectory / module / directory)
             onError:[:status | self error:'make failed'].
     ] ifFalse:[
-        (makeExeOnly ? false) ifTrue:[
+        (self makeExeOnly) ifTrue:[
             self activityNotification:(makeCommand,' exe').
             OperatingSystem
                 "/ generate the executable