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 "<yourname>: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><yourname>: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> |