Tools__ProjectBuilderAssistantApplication.st
changeset 3342 1d1d2904c353
parent 3340 c3f16b9e2999
child 3429 bda211bf56ec
equal deleted inserted replaced
3341:2089a2debb66 3342:1d1d2904c353
  2114     |defClass|
  2114     |defClass|
  2115 
  2115 
  2116     self hasProjectSelected ifTrue:[
  2116     self hasProjectSelected ifTrue:[
  2117         defClass := self selectedProjectDefinition.
  2117         defClass := self selectedProjectDefinition.
  2118         UserPreferences systemBrowserClass 
  2118         UserPreferences systemBrowserClass 
  2119             openInClass:defClass class selector:#preRequisites.
  2119             openInClass:defClass class selector:#referencedPreRequisites "/ #mandatoryPreRequisites.
  2120     ].
  2120     ].
  2121 !
  2121 !
  2122 
  2122 
  2123 doBrowseStartupClass
  2123 doBrowseStartupClass
  2124     <resource: #uiCallback>
  2124     <resource: #uiCallback>
  3172     specs add:
  3172     specs add:
  3173         #( AssistantPageSpec
  3173         #( AssistantPageSpec
  3174             pageTitle: 'Project Type Selection'
  3174             pageTitle: 'Project Type Selection'
  3175             windowSpecSelector: page1_projectTypeSelectionSpec
  3175             windowSpecSelector: page1_projectTypeSelectionSpec
  3176             enterCallbackSelector: updateListOfMatchingProjects
  3176             enterCallbackSelector: updateListOfMatchingProjects
  3177             infoText: 'Choose the <B>type</B> of project you are about to build.'
  3177             infoText: 'Define the <B>type</B> of project you are about to build.<P>
       
  3178 Choose <B>GUI-application</B> for a program which will show a graphical user interface,
       
  3179 <br><B>non-GUI-program</b> for a console program, 
       
  3180 <br>and <B>library</b>, for a framework to be
       
  3181 used by other programs (a loadable shared binary class library).'
  3178         ) decodeAsLiteralArray.
  3182         ) decodeAsLiteralArray.
  3179 
  3183 
  3180     specs add:
  3184     specs add:
  3181         #(AssistantPageSpec
  3185         #(AssistantPageSpec
  3182             pageTitle: 'ProjectDefinition Selection'
  3186             pageTitle: 'ProjectDefinition Selection'
  3183             windowSpecSelector: page2_projectSelectionSpec
  3187             windowSpecSelector: page2_projectSelectionSpec
  3184             enterCallbackSelector: updateListOfMatchingProjectsAndProjectIDs
  3188             enterCallbackSelector: updateListOfMatchingProjectsAndProjectIDs
  3185             leaveCallbackSelector: fetchAttributesFromProjectDefinition
  3189             leaveCallbackSelector: fetchAttributesFromProjectDefinition
  3186             infoText: 'Choose an existing project definition or create a new one. 
  3190             infoText: 'Choose either an existing project definition or create a new one. 
  3187 These are subclasses of <I>ProjectDefinition</I> and define the type and contents of a project. 
  3191 These are subclasses of <I>ProjectDefinition</I> and define the type, name and contents of a project. 
  3188 <p>
  3192 <p>
  3189 Notice that the ID directly reflects the project''s location within the source code repository (module:directory/subdirectory...). 
  3193 Please enter a project-identifier which must have a well defined format in Smalltalk/X.
  3190 If in doubt, use "&lt;yourname&gt;:demos/xxx_n".'
  3194 Notice that the ID directly reflects the project''s location within the source code repository 
       
  3195 (module:directoryPath). 
       
  3196 <br>If in doubt, use "<b>&lt;yourname&gt;:demos/xxx_n</b>".'
  3191         ) decodeAsLiteralArray.
  3197         ) decodeAsLiteralArray.
  3192 
  3198 
  3193     specs add:
  3199     specs add:
  3194         #(AssistantPageSpec
  3200         #(AssistantPageSpec
  3195             pageTitle: 'Startup Application Selection'
  3201             pageTitle: 'Startup Application Selection'
  3208             windowSpecSelector: page4_startupClassSelectionSpec
  3214             windowSpecSelector: page4_startupClassSelectionSpec
  3209             isEnabledQuerySelector: #projectTypeIsNotLibrary
  3215             isEnabledQuerySelector: #projectTypeIsNotLibrary
  3210             canEnterQuerySelector: #canEnterStartupClassSelection
  3216             canEnterQuerySelector: #canEnterStartupClassSelection
  3211             enterCallbackSelector: updateListOfStartupClassesInProject
  3217             enterCallbackSelector: updateListOfStartupClassesInProject
  3212             infoText: 'Choose an existing startup-class or create a new one. 
  3218             infoText: 'Choose an existing startup-class or create a new one. 
  3213 These are subclasses of <I>StandaloneStartup</I> and start the application. 
  3219 <p>These are subclasses of <I>StandaloneStartup</I> and contain the main function,
  3214 Command line arguments can be interpreted there.'
  3220 which either starts the application (in case of a GUI application)
       
  3221 or directly performs the program''s task (in case of a non-GUI console program).<br> 
       
  3222 Command line arguments are usually interpreted there.
       
  3223 <p>Do not use one of the "StandAloneStartup"-classes, which you may find in the system: 
       
  3224 these are abstract, and to be used as superclass of your concrete startup.
       
  3225 <p>For a quick demo, enter a reasonable name, and press the "Create" button.'
  3215         ) decodeAsLiteralArray.
  3226         ) decodeAsLiteralArray.
  3216 
  3227 
  3217     specs add:
  3228     specs add:
  3218         #(AssistantPageSpec
  3229         #(AssistantPageSpec
  3219             pageTitle: 'Specify Contents'
  3230             pageTitle: 'Specify Contents'
  3220             windowSpecSelector: page5_specifyIncludedClasses
  3231             windowSpecSelector: page5_specifyIncludedClasses
  3221             enterCallbackSelector: enterContentsSpecification
  3232             enterCallbackSelector: enterContentsSpecification
  3222             canEnterQuerySelector: #canEnterContentsSelection
  3233             canEnterQuerySelector: #canEnterContentsSelection
  3223             infoText: 'Define which (other) classes are to be included. 
  3234             infoText: 'Check the list of other classes which are to be included. 
  3224 Do not include classes from other packages here. 
  3235 These are the classes which comprise your application 
       
  3236 (excluding any libraries, which are specified in the next step).
  3225 <p>
  3237 <p>
  3226 Press "<I>Scan</I>" to include all classes of the package; 
  3238 Press "<I>Update List</I>" to search for and include all classes of the package. 
  3227 <br>
  3239 <p>
  3228 "<I>Browse</I>" to edit the contents manually.'
  3240 Press "<I>Browse</I>" to edit the contents manually (this opens an editor on the defining method
       
  3241 in your project definition class).'
  3229         ) decodeAsLiteralArray.
  3242         ) decodeAsLiteralArray.
  3230 
  3243 
  3231     specs add:
  3244     specs add:
  3232         #(AssistantPageSpec
  3245         #(AssistantPageSpec
  3233             pageTitle: 'Specify Prerequisites'
  3246             pageTitle: 'Specify Prerequisites'
  3234             windowSpecSelector: page5b_specifyPrerequisitePackages
  3247             windowSpecSelector: page5b_specifyPrerequisitePackages
  3235             enterCallbackSelector: enterPrerequisitesSpecification
  3248             enterCallbackSelector: enterPrerequisitesSpecification
  3236             canEnterQuerySelector: #canEnterPrerequisitesSelection
  3249             canEnterQuerySelector: #canEnterPrerequisitesSelection
  3237             infoText: 'Define which packages are needed as prerequisites. 
  3250             infoText: 'Check the list of packages/libraries which are needed as prerequisites. 
  3238 These are required class libraries which should be packaged together with the application. 
  3251 These are required class libraries which should be packaged together with the application,
       
  3252 and will be present in the deployed binary.
  3239 <p>
  3253 <p>
  3240 Press "<I>Scan</I>" to search for prerequisites; 
  3254 Non-GUI programs will typically only require the basic class library 
  3241 <br>"<I>Browse</I>" to edit the list manually.'
  3255 and libcomp (the parser and bytecode compiler) to be read startup scripts and patches.
       
  3256 <p>
       
  3257 GUI programs will require a number of view- and widget support classes, which contain the
       
  3258 graphical user interface support classes.
       
  3259 <p>
       
  3260 Press "<I>Update</I>" to search for and include prerequisites.
       
  3261 <p>
       
  3262 "<I>Browse</I>" to edit the list manually.'
  3242         ) decodeAsLiteralArray.
  3263         ) decodeAsLiteralArray.
  3243 
  3264 
  3244     specs add:
  3265     specs add:
  3245         #(AssistantPageSpec
  3266         #(AssistantPageSpec
  3246             pageTitle: 'Specify Project Attributes'
  3267             pageTitle: 'Specify Project Attributes'
  3253 
  3274 
  3254     specs add:
  3275     specs add:
  3255         #(AssistantPageSpec
  3276         #(AssistantPageSpec
  3256             pageTitle: 'Specify Build Directory'
  3277             pageTitle: 'Specify Build Directory'
  3257             windowSpecSelector: page6b_specifyBuildDirectorySpec
  3278             windowSpecSelector: page6b_specifyBuildDirectorySpec
  3258             infoText: 'Define where the build-process is to be performed and which compiler to use. All generated files are created below that directory. After deployment, the build directory is no longer needed (but you can keep it for a faster compile the next time).'
  3279             infoText: 'Define where the build-process is to be performed and which compiler to use. 
       
  3280 <P>All generated files are created below that directory. 
       
  3281 <P>After deployment, the build directory is no longer needed 
       
  3282 (but you can keep it for a faster compile the next time).
       
  3283 <P>Normally, the default values are ok, and there is no need to change anything here.'
  3259             enterCallbackSelector: #checkCompilerAvailability
  3284             enterCallbackSelector: #checkCompilerAvailability
  3260             leaveCallbackSelector: #rememberUsedCompiler
  3285             leaveCallbackSelector: #rememberUsedCompiler
  3261         ) decodeAsLiteralArray.
  3286         ) decodeAsLiteralArray.
  3262 
  3287 
  3263     specs add:
  3288     specs add:
  3264         #(AssistantPageSpec
  3289         #(AssistantPageSpec
  3265             pageTitle: 'Check Into Source Repository'
  3290             pageTitle: 'Check Into Source Repository'
  3266             windowSpecSelector: page7a_checkinSpec
  3291             windowSpecSelector: page7a_checkinSpec
  3267             enterCallbackSelector: #checkSourceCodeManagerType
  3292             enterCallbackSelector: #checkSourceCodeManagerType
  3268             infoText: 'Check the package''s source and build-support files into the source code repository.'
  3293             infoText: 'Optionally check the package''s source and build-support files into the 
       
  3294 source code repository.
       
  3295 <p>You can skip this for a quick test (a local build), 
       
  3296 or if you do not have/want a central repository.'
  3269         ) decodeAsLiteralArray.
  3297         ) decodeAsLiteralArray.
  3270 
  3298 
  3271     specs add:
  3299     specs add:
  3272         #(AssistantPageSpec
  3300         #(AssistantPageSpec
  3273             pageTitle: 'Build'
  3301             pageTitle: 'Build'
  3274             windowSpecSelector: page7b_buildSpec
  3302             windowSpecSelector: page7b_buildSpec
  3275             canEnterQuerySelector: #canEnterBuild
  3303             canEnterQuerySelector: #canEnterBuild
  3276             enterCallbackSelector: #restoreMakeOutputsContents
  3304             enterCallbackSelector: #restoreMakeOutputsContents
  3277             leaveCallbackSelector: #rememberMakeOutputsContents
  3305             leaveCallbackSelector: #rememberMakeOutputsContents
  3278             infoText: 'Start the build-process. This will create an isolated build directory,
  3306             infoText: 'Start the build-process. This will create an isolated build directory,
  3279 and run "make" there to compile all required classes.
  3307 and run "<i>make</i>" there to compile all required classes.
  3280 <P>            
  3308 <P>            
  3281 On Windows, it will use "nsis" to generate a self-installable executable, 
  3309 On Windows, it will use "<i>nsis</i>" to generate a self-installable executable, 
  3282 and you must have the compiler (borland-bcc, visual-c or mingw) and NullSoft NSIS packages installed for this to work.
  3310 and you must have the compiler (borland-bcc, visual-c or mingw) and NullSoft NSIS packages installed for this to work.
  3283 Without NSIS, zip the folder where the exe is generated and unzip on a target machine.
  3311 Without NSIS, you can "zip" the folder where the "exe" is generated 
       
  3312 and unzip on a target machine.
  3284 <P>
  3313 <P>
  3285 On OS X, it will generate a "dmg" for deployment. You should have XCode or the "gcc" tool chain installed.
  3314 On OS X, it will generate a "dmg" for deployment. You should have XCode or the "gcc" tool chain installed.
  3286 <P>
  3315 <P>
  3287 On Linux, an installable package will be generated. You should have the development support packages installed (gcc, Xlib etc.).
  3316 On Linux, an installable package will be generated. You should have the development support packages installed (gcc, Xlib etc.).
  3288 <P>
  3317 <P>