ProjectBuilder.st
changeset 2912 6e62954c5f35
parent 2911 e12e4a47cfaa
child 2914 745b9c77b599
--- a/ProjectBuilder.st	Tue Sep 04 00:34:29 2012 +0200
+++ b/ProjectBuilder.st	Tue Sep 04 01:09:05 2012 +0200
@@ -251,12 +251,15 @@
     self generateSourceFiles.
     self activityNotification:'Copying dlls for linkage...'.
     self copyDLLsForLinkage.
-    self activityNotification:'Copying support files for linkage...'.
+    self activityNotification:'Copying support files for compilation and linkage...'.
+    self copySupportFilesForCompilation.
     self copySupportFilesForLinkage.
     self copyStartupFilesFromSmalltalk.
 
     self activityNotification:'Executing make...'.
     self makeWithOutputTo:stdOut errorTo:stdErr.
+
+    "Modified: / 04-09-2012 / 00:49:52 / cg"
 ! !
 
 !ProjectBuilder methodsFor:'building/private'!
@@ -373,6 +376,8 @@
 !
 
 copySTCDirectoryForBuild
+    "copy stc files to the build directory"
+
     |targetDir stc files|
 
     targetDir := buildDirectory / 'stx' / 'stc'.
@@ -401,9 +406,13 @@
     ].
 
     self activityNotification:nil
+
+    "Modified (comment): / 04-09-2012 / 00:49:19 / cg"
 !
 
 copyStartupFilesFromSmalltalk
+    "copy additional smalltalk startup files to the build directory"
+
     (buildDirectory / 'stx' / 'projects/smalltalk' ) exists ifFalse:[
         (buildDirectory / 'stx' / 'projects/smalltalk' ) recursiveMakeDirectory.
     ].
@@ -424,9 +433,49 @@
 
     (myTopDirectory / 'stx' / 'doc/online/english/LICENCE_STX.html')
             copyTo: (buildDirectory / 'stx' / 'projects/smalltalk' / 'LICENCE_STX.html').
+
+    "Modified (comment): / 04-09-2012 / 00:48:47 / cg"
+!
+
+copySupportFilesForCompilation
+    "copy the tcc compiler to the build directory"
+
+    |files|
+
+    files := #().
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[
+        usedCompiler = 'tcc' ifTrue:[
+            files := files , #( 
+                        'support/tcc'
+                    ).
+        ].
+    ] ifFalse:[
+        files := files , #(
+                )
+    ].
+    files := files asOrderedCollection.
+
+    files do:[:relativePath |
+        (mySTXTopDirectory / relativePath) exists ifTrue:[
+            ((buildDirectory / 'stx' / relativePath) exists
+            and:[ (mySTXTopDirectory / relativePath) fileSize = (buildDirectory / 'stx' / relativePath) fileSize
+            and:[ (mySTXTopDirectory / relativePath) modificationTime < (buildDirectory / 'stx' / relativePath) modificationTime
+            "/ and:[ (mySTXTopDirectory / dllRelativePath) sameContentsAs:(targetBuildDir / dllRelativePath) ]
+            ]]) ifFalse:[
+                (mySTXTopDirectory / relativePath) recursiveCopyTo:(buildDirectory / 'stx' / relativePath).    
+            ]
+        ] ifFalse:[
+            self error:'Missing directory: ',relativePath printString mayProceed:true.
+        ].
+    ].
+
+    "Created: / 04-09-2012 / 00:47:49 / cg"
 !
 
 copySupportFilesForLinkage
+    "copy additional files which are req'd for linkage to the build directory"
+
     |files|
 
     OperatingSystem isMSWINDOWSlike ifTrue:[
@@ -492,7 +541,7 @@
         ].
     ].
 
-    "Modified: / 04-09-2012 / 00:25:26 / cg"
+    "Modified (comment): / 04-09-2012 / 00:48:24 / cg"
 !
 
 createHeaderFileFor:aClass in:packageTargetDir