--- 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