class: Tools::ProjectBuilder
authorClaus Gittinger <cg@exept.de>
Thu, 21 Mar 2013 18:30:30 +0100
changeset 2981 e61e4a6fb317
parent 2980 0756e01d5954
child 2982 e8a9f796d598
class: Tools::ProjectBuilder changed: #copyResourcesForPackage: #generateSourceFilesByFilingOut care for extensions
ProjectBuilder.st
--- a/ProjectBuilder.st	Wed Mar 20 19:41:52 2013 +0100
+++ b/ProjectBuilder.st	Thu Mar 21 18:30:30 2013 +0100
@@ -462,18 +462,18 @@
 !
 
 copyResourcesForPackage:aPackage
-    |module directory|
+    |module directory myPackageDirectory rsrcDir stylesDir|
 
     module := aPackage asPackageId module.
     directory := aPackage asPackageId directory.
 
-    (myTopDirectory / module / directory / 'resources' ) exists ifTrue:[
-        (myTopDirectory / module / directory / 'resources' )
-            recursiveCopyTo:(buildDirectory / module / directory)
+    myPackageDirectory := myTopDirectory / module / directory.
+
+    (rsrcDir := myPackageDirectory / 'resources' ) exists ifTrue:[
+        rsrcDir recursiveCopyTo:(buildDirectory / module / directory)
     ].
-    (myTopDirectory / module / directory / 'styles' ) exists ifTrue:[
-        (myTopDirectory / module / directory / 'styles' )
-            recursiveCopyTo:(buildDirectory / module / directory)
+    (stylesDir := myPackageDirectory / 'styles' ) exists ifTrue:[
+        stylesDir recursiveCopyTo:(buildDirectory / module / directory)
     ].
 !
 
@@ -804,7 +804,7 @@
     "/ file out the package(s) which are to be built
     ((Array with:package))
     do:[:eachPackageToFileout |
-        |packageId packageModule packageDirectory packageTargetDir packageDef|
+        |packageId packageModule packageDirectory packageTargetDir packageDef extSource|
 
         packageId := eachPackageToFileout asPackageId.
         packageModule := packageId module.
@@ -830,6 +830,16 @@
             ].
         ].
 
+        packageDef hasExtensionMethods ifTrue:[
+            extSource := 
+                String streamContents:[:s |
+                    packageDef extensionMethods do:[:eachMethod |
+                        eachMethod mclass fileOutMethod:eachMethod on:s
+                    ].
+                ].
+                (packageTargetDir asFilename construct:'extensions.st') contents:extSource
+        ].
+
 "/        (Smalltalk allClassesInPackage:eachPackageToFileout) do:[:cls |
 "/            cls isPrivate ifFalse:[
 "/                cls isLoaded ifFalse:[