# HG changeset patch # User Claus Gittinger # Date 1363032568 -3600 # Node ID 7db782e25d019d3f504adfec1be687d70b7a04ee # Parent e10937c3574892407dbab7ab30411d982dda051a mingw build (unfinished) diff -r e10937c35748 -r 7db782e25d01 ProjectBuilder.st --- 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