ApplicationBuilder.st
changeset 1558 c4ed1badfc13
parent 1551 8607e094b4df
child 1559 088d6bc754c9
--- a/ApplicationBuilder.st	Sat Apr 18 15:58:57 1998 +0200
+++ b/ApplicationBuilder.st	Sat Apr 18 16:17:45 1998 +0200
@@ -32,10 +32,9 @@
         6. Link the libraries to the application
         7. Define the symbolic links to the resources
 
-
     [instance variables:]
         task           <Process>               task of the running build
-        shellView      <ShellView>             shell view for outputing the build results
+        shellView      <ShellView>             shell view for outputting the build results
 
     [instance class variables:]
         aspects        <IdentityDictionary>    aspects of the settings
@@ -64,6 +63,11 @@
 aspects: anIdentityDictionary
 
     aspects := anIdentityDictionary
+!
+
+label
+
+   ^'Application Builder (experimental)'
 ! !
 
 !ApplicationBuilder class methodsFor:'help specs'!
@@ -104,6 +108,12 @@
 #link
 'Starts the process of linking the application.'
 
+#selectPath
+'Opens a dialog for choosing the name of the file/path.'
+
+#sourceDirectory
+'Source directory of ST/X.'
+
 #start
 'Start the build application.'
 
@@ -175,11 +185,11 @@
           #window: 
            #(#WindowSpec
               #name: 'Application Builder'
-              #layout: #(#LayoutFrame 428 0 301 0 927 0 760 0)
+              #layout: #(#LayoutFrame 79 0 285 0 578 0 744 0)
               #label: 'Application Builder'
               #min: #(#Point 420 220)
               #max: #(#Point 1152 900)
-              #bounds: #(#Rectangle 428 301 928 761)
+              #bounds: #(#Rectangle 79 285 579 745)
               #menu: #menu
               #usePreferredExtent: false
           )
@@ -256,6 +266,7 @@
                                      #(#ActionButtonSpec
                                         #name: 'targetDirectoryButton'
                                         #layout: #(#LayoutFrame 4 0 109 0 147 0 133 0)
+                                        #activeHelpKey: #selectPath
                                         #label: 'Target Directory:'
                                         #model: #doSelectDirectory:
                                         #actionValue: 'Target'
@@ -269,6 +280,7 @@
                                      #(#ActionButtonSpec
                                         #name: 'topDirectoryButton'
                                         #layout: #(#LayoutFrame 4 0 133 0 147 0 157 0)
+                                        #activeHelpKey: #selectPath
                                         #label: 'Top Directory:'
                                         #model: #doSelectDirectory:
                                         #actionValue: 'Top'
@@ -282,6 +294,7 @@
                                      #(#ActionButtonSpec
                                         #name: 'libraryDirectoryButton'
                                         #layout: #(#LayoutFrame 4 0 157 0 147 0 181 0)
+                                        #activeHelpKey: #selectPath
                                         #label: 'Library Directory:'
                                         #model: #doSelectDirectory:
                                         #actionValue: 'Library'
@@ -295,6 +308,7 @@
                                      #(#ActionButtonSpec
                                         #name: 'startupCFileButton'
                                         #layout: #(#LayoutFrame 4 0 181 0 147 0 205 0)
+                                        #activeHelpKey: #selectPath
                                         #label: 'Startup C-File:'
                                         #model: #doSelectCFile:
                                         #actionValue: 'StartupCFile'
@@ -326,6 +340,7 @@
                                      #(#ActionButtonSpec
                                         #name: 'systemLibrariesButton'
                                         #layout: #(#LayoutFrame 4 0 239 0 147 0 263 0)
+                                        #activeHelpKey: #selectPath
                                         #label: 'System Libraries:'
                                         #model: #doSelectLibrary:
                                         #actionValue: 'SystemLibrary'
@@ -342,6 +357,7 @@
                                      #(#ActionButtonSpec
                                         #name: 'userLibrariesButton'
                                         #layout: #(#LayoutFrame 4 0 263 0 147 0 287 0)
+                                        #activeHelpKey: #selectPath
                                         #label: 'User Libraries:'
                                         #model: #doSelectLibrary:
                                         #actionValue: 'UserLibrary'
@@ -499,12 +515,32 @@
           
            #(
              #(#MenuItem
+                #label: 'About'
+                #labelImage: #(#ResourceRetriever nil #menuIcon)
+                #submenuChannel: #menuAbout
+            )
+             #(#MenuItem
                 #label: 'File'
                 #submenu: 
                  #(#Menu
                     
                      #(
                        #(#MenuItem
+                          #label: 'Exit'
+                          #value: #closeRequest
+                          #activeHelpKey: #fileExit
+                      )
+                    ) nil
+                    nil
+                )
+            )
+             #(#MenuItem
+                #label: 'Application'
+                #submenu: 
+                 #(#Menu
+                    
+                     #(
+                       #(#MenuItem
                           #label: 'Build'
                           #value: #doBuild
                           #activeHelpKey: #build
@@ -515,6 +551,9 @@
                           #activeHelpKey: #link
                       )
                        #(#MenuItem
+                          #label: '-'
+                      )
+                       #(#MenuItem
                           #label: 'Stop'
                           #value: #doStop
                           #activeHelpKey: #stop
@@ -524,14 +563,6 @@
                           #value: #doStart
                           #activeHelpKey: #start
                       )
-                       #(#MenuItem
-                          #label: '-'
-                      )
-                       #(#MenuItem
-                          #label: 'Exit'
-                          #value: #closeRequest
-                          #activeHelpKey: #fileExit
-                      )
                     ) nil
                     nil
                 )
@@ -839,8 +870,7 @@
         ifTrue:
         [
             outStream readWait.
-            shellView append: shellView getDirectoryTextString, ' ',
-                (Text string: (outStream upTo: Character cr) color: Color red).
+            shellView append: (Text string: (outStream upTo: Character cr) color: Color red).
         ].
     ] doWhile:[outStream atEnd not].
 
@@ -1010,6 +1040,10 @@
                 'ln -s ', 
                 ((aspects at: #libraryDirectory) value asFilename construct: '*.rc') name, ' ', 
                 (aspects at: #targetDirectory) value inDirectory: dir.
+            self executeCommand: 
+                'ln -s ', 
+                ((aspects at: #libraryDirectory) value asFilename construct: 'patches') name, ' ', 
+                (aspects at: #targetDirectory) value inDirectory: dir.
         ].
         (aspects at: #linkResources) value
         ifTrue:
@@ -1156,8 +1190,7 @@
         (aspects at: #userLibrary) value size = 0 ifTrue: [libraries remove: (aspects at: #oldUserLibrary) value ifAbsent: nil].
         (aspects at: #oldUserLibrary) value: (library := (aspects at: #userLibrary) value).
     ].
-    (libraries includes: library) not &
-    library notEmpty
+    (libraries includes: library) not & library notEmpty
     ifTrue:
     [   
         libraries addFirst: library
@@ -1183,12 +1216,12 @@
     homeDir := Filename homeDirectory asFilename.
 
     self aspectsAt: #topDirectory      putFirst: (homeDir construct: 'stx') name.
-    self aspectsAt: #systemLibraries   putFirst: ObjectFileLoader searchedLibraries.
+    aspects     at: #systemLibraries   put: ObjectFileLoader searchedLibraries asValue.
     (aspects at: #systemLibrary        put: ((aspects at: #systemLibraries) value at: 1 ifAbsent: '') asValue) addDependent: self.
     self aspectsAt: #oldSystemLibrary putFirst: (aspects at: #systemLibrary) value.
     self aspectsAt: #configuration     putFirst: Smalltalk configuration.
 
-    self class ~~ ApplicationBuilder ifTrue: [^nil].
+    self class ~~ ApplicationBuilder ifTrue: [^self].
 
     self aspectsAt: #applicationName   putFirst: 'application'.
     self aspectsAt: #startupMessage    putFirst: 'Smalltalk start'.
@@ -1297,10 +1330,18 @@
 
     super closeRequest
 
+!
+
+postBuildWith:aBuilder
+    "sets target directory for the shell view"
+
+    shellView directory: self getTargetDirectory.
+
+    ^super postBuildWith:aBuilder
 ! !
 
 !ApplicationBuilder class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ApplicationBuilder.st,v 1.3 1998-04-16 22:05:50 tz Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ApplicationBuilder.st,v 1.4 1998-04-18 14:17:07 tz Exp $'
 ! !