ProjectBuilder.st
changeset 2611 706991dee298
parent 2600 bfde5434dcdd
child 2612 2e735008a4d8
equal deleted inserted replaced
2610:2fbaaa0e8e33 2611:706991dee298
    30 ! !
    30 ! !
    31 
    31 
    32 !ProjectBuilder methodsFor:'building'!
    32 !ProjectBuilder methodsFor:'building'!
    33 
    33 
    34 build
    34 build
       
    35     "/ intermediate - this will move into a commonly used utility class
       
    36     "/ (where all the project code support will be collected).
       
    37 
       
    38     |makeOutput stdOut stdErr lock|
       
    39 
       
    40     lock := Semaphore forMutualExclusion.
       
    41     makeOutput := TextStream on:(Text new:10000).
       
    42     stdErr := ActorStream new
       
    43                     nextPutBlock:[:char |
       
    44                         lock critical:[
       
    45                             makeOutput emphasis:{#backgroundColor->Color red. #color->Color white.}.
       
    46                             makeOutput nextPut:char.
       
    47                             makeOutput emphasis:nil.
       
    48                         ]
       
    49                     ];
       
    50                     nextPutAllBlock:[:char |
       
    51                         lock critical:[
       
    52                             makeOutput emphasis:{#backgroundColor->Color red. #color->Color white.}.
       
    53                             makeOutput nextPutAll:char.
       
    54                             makeOutput emphasis:nil.
       
    55                         ]
       
    56                     ].
       
    57     stdOut := ActorStream new
       
    58                     nextPutBlock:[:char |
       
    59                         lock critical:[
       
    60                             makeOutput nextPut:char.
       
    61                         ]
       
    62                     ];
       
    63                     nextPutAllBlock:[:char |
       
    64                         lock critical:[
       
    65                             makeOutput nextPutAll:char.
       
    66                         ]
       
    67                     ].
       
    68 
       
    69     self buildWithOutputTo:stdOut errorTo:stdErr.
       
    70 
       
    71     TextView openWith:makeOutput contents.
       
    72 !
       
    73 
       
    74 buildWithOutputTo:stdOut errorTo:stdErr
    35     "/ intermediate - this will move into a commonly used utility class
    75     "/ intermediate - this will move into a commonly used utility class
    36     "/ (where all the project code support will be collected).
    76     "/ (where all the project code support will be collected).
    37 
    77 
    38     |module directory|
    78     |module directory|
    39 
    79 
    85     self generateSourceFiles.
   125     self generateSourceFiles.
    86     self copyDLLsForLinkage.
   126     self copyDLLsForLinkage.
    87     self copySupportFilesForLinkage.
   127     self copySupportFilesForLinkage.
    88     self copyStartupFilesFromSmalltalk.
   128     self copyStartupFilesFromSmalltalk.
    89 
   129 
    90     OperatingSystem
   130     self makeWithOutputTo:stdOut errorTo:stdErr.
    91         executeCommand:(ParserFlags makeCommand,' exe')
       
    92         inputFrom:nil
       
    93         outputTo:Transcript
       
    94         errorTo:Transcript
       
    95         inDirectory:(buildDirectory / module / directory)
       
    96         onError:[:status| self error:'make failed'].
       
    97 
       
    98     "Created: / 09-08-2006 / 18:37:19 / fm"
       
    99     "Modified: / 09-08-2006 / 19:55:50 / fm"
       
   100     "Modified: / 22-09-2006 / 17:37:11 / cg"
       
   101 !
   131 !
   102 
   132 
   103 copyDLLsForLinkage
   133 copyDLLsForLinkage
   104     |targetBuildDir|
   134     |targetBuildDir|
   105 
   135 
   438         ].
   468         ].
   439         self copyResourcesForPackage:eachPackageToFileout.
   469         self copyResourcesForPackage:eachPackageToFileout.
   440     ].
   470     ].
   441 
   471 
   442 "/    stx_libbasic2 preRequisitesForBuilding#(#'stx:libbasic')
   472 "/    stx_libbasic2 preRequisitesForBuilding#(#'stx:libbasic')
       
   473 !
       
   474 
       
   475 makeWithOutputTo:stdOut errorTo:stdErr
       
   476     |module directory|
       
   477 
       
   478     module := package module.
       
   479     directory := package directory.
       
   480 
       
   481     OperatingSystem
       
   482         executeCommand:(ParserFlags makeCommand,' exe')
       
   483         inputFrom:nil
       
   484         outputTo:stdOut
       
   485         errorTo:stdErr
       
   486         inDirectory:(buildDirectory / module / directory)
       
   487         onError:[:status| self error:'make failed'].
       
   488 
       
   489     OperatingSystem
       
   490         executeCommand:(ParserFlags makeCommand,' setup')
       
   491         inputFrom:nil
       
   492         outputTo:stdOut
       
   493         errorTo:stdErr
       
   494         inDirectory:(buildDirectory / module / directory)
       
   495         onError:[:status| self error:'make failed'].
   443 !
   496 !
   444 
   497 
   445 setupBuildDirectory
   498 setupBuildDirectory
   446     buildDirectory exists ifFalse:[
   499     buildDirectory exists ifFalse:[
   447         buildDirectory recursiveMakeDirectory.
   500         buildDirectory recursiveMakeDirectory.