# HG changeset patch # User Claus Gittinger # Date 1346745677 -7200 # Node ID 94e5ae8e15b2bd4f6adde7cf0c1b707e5cd0c0a5 # Parent 6e62954c5f3547198562c976041c60c68f1902fe class definition added: #fetchAttributesFromProjectDefinition #fetchSelectedProject #rememberUsedCompiler changed: #assistantSpec #checkCompilerAvailability #selectedProjectChanged #usedCompilerHolder category of: #selectedProjectDefinition diff -r 6e62954c5f35 -r 94e5ae8e15b2 Tools__ProjectBuilderAssistantApplication.st --- a/Tools__ProjectBuilderAssistantApplication.st Tue Sep 04 01:09:05 2012 +0200 +++ b/Tools__ProjectBuilderAssistantApplication.st Tue Sep 04 10:01:17 2012 +0200 @@ -32,7 +32,7 @@ companyNameHolder compilerWarnMessageHolder compilerWarnMessageVisibleHolder listOfPrerequisitesInProject nameOfUsedCompilerSuiteHolder' - classVariableNames:'' + classVariableNames:'LastUsedCompiler' poolDictionaries:'' category:'System-Support-Projects' ! @@ -221,6 +221,7 @@ pageTitle: 'ProjectDefinition Selection' windowSpecSelector: page2_projectSelectionSpec enterCallbackSelector: updateListOfMatchingProjectsAndProjectIDs + leaveCallbackSelector: fetchAttributesFromProjectDefinition infoText: 'Choose an existing project definition or create a new one. These are subclasses of ProjectDefinition and define the type and contents of a project. Notice that the ID directly reflects the project''s location within the source code repository (module:directory/subdirectory...). If in doubt, use "<yourname>:demos/xxx_n".' ) @@ -269,8 +270,9 @@ (AssistantPageSpec pageTitle: 'Specify Build Directory' windowSpecSelector: page6b_specifyBuildDirectorySpec - infoText: 'Define where the build-process is to be performed. 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).' + 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).' enterCallbackSelector: #checkCompilerAvailability + leaveCallbackSelector: #rememberUsedCompiler ) (AssistantPageSpec @@ -290,7 +292,7 @@ ) ) decodeAsLiteralArray. - "Modified: / 20-08-2012 / 19:44:04 / cg" + "Modified: / 04-09-2012 / 09:49:50 / cg" ! ! !ProjectBuilderAssistantApplication class methodsFor:'defaults'! @@ -1786,6 +1788,20 @@ ]. ! +fetchSelectedProject + |selectedProjectIndex| + + selectedProjectIndex := self selectedProjectIndexHolder value. + (selectedProjectIndex ? 0) == 0 ifTrue:[ + selectedProjectDefinition := nil. + ] ifFalse:[ + selectedProjectDefinition := self listOfMatchingProjects value at:(selectedProjectIndex). + ]. + self hasProjectSelectedHolder value:(selectedProjectDefinition notNil). + + "Created: / 04-09-2012 / 09:52:32 / cg" +! + projectTypeChanged @@ -1853,20 +1869,13 @@ ! selectedProjectChanged - - |selectedProjectIndex| - - selectedProjectIndex := self selectedProjectIndexHolder value. - (selectedProjectIndex ? 0) == 0 ifTrue:[ - selectedProjectDefinition := nil. - ] ifFalse:[ - selectedProjectDefinition := self listOfMatchingProjects value at:(selectedProjectIndex). - ]. - self hasProjectSelectedHolder value:(selectedProjectDefinition notNil). + self fetchSelectedProject. self updateComment. self updateListOfApplicationsInProject. self updateButtonEnableState. + + "Modified: / 04-09-2012 / 09:52:43 / cg" ! selectedStartupClassChanged @@ -2268,12 +2277,12 @@ usedCompilerHolder isNil ifTrue:[ usedCompilerHolder := ValueHolder new. - usedCompilerHolder value:(ProjectBuilder defaultUsedCompiler). + usedCompilerHolder value:(LastUsedCompiler ? ProjectBuilder defaultUsedCompiler). usedCompilerHolder onChangeSend:#checkCompilerAvailability to:self. ]. ^ usedCompilerHolder. - "Modified: / 21-01-2012 / 14:07:16 / cg" + "Modified: / 04-09-2012 / 09:43:20 / cg" ! ! !ProjectBuilderAssistantApplication methodsFor:'initialization & release'! @@ -2614,29 +2623,29 @@ ]. self usedCompilerHolder value = 'vc' ifTrue:[ cmd := 'cl'. - warnMsg2 := 'Due to bugs in this C-compiler, some classes may not be compilable.'. + warnMsg1 := 'Due to bugs in this C-compiler, some classes may not be compilable.'. ]. self usedCompilerHolder value = 'lcc' ifTrue:[ cmd := 'lcc'. - warnMsg2 := 'The LCC C-compiler suite is not yet supported (linkage).'. + warnMsg1 := 'The LCC C-compiler suite is not yet supported (linkage).'. ]. self usedCompilerHolder value = 'tcc' ifTrue:[ cmd := 'tcc'. OperatingSystem isMSWINDOWSlike ifTrue:[ - warnMsg2 := 'The Tiny C-compiler suite is not yet supported on MSDOS systems.'. + warnMsg1 := 'The Tiny C-compiler suite is not yet supported on MSDOS systems.'. ]. ]. self usedCompilerHolder value = 'gcc' ifTrue:[ cmd := 'gcc'. OperatingSystem isMSWINDOWSlike ifTrue:[ - warnMsg2 := 'The GNU C-compiler suite is not yet supported on MSDOS systems.'. + warnMsg1 := 'The GNU C-compiler suite is not yet supported on MSDOS systems.'. ]. ]. suite := self suiteNameOfCompiler:(self usedCompilerHolder value). self nameOfUsedCompilerSuiteHolder value:suite. (OperatingSystem canExecuteCommand:cmd) ifFalse:[ - warnMsg1 := + warnMsg2 := 'The "%1"-command seems to be not in your path. Please ensure that you installed the "%2" compiler suite correctly. @@ -2655,7 +2664,7 @@ self compilerWarnMessageVisibleHolder value:false ]. - "Modified: / 03-09-2012 / 19:32:09 / cg" + "Modified: / 04-09-2012 / 09:57:37 / cg" ! enterContentsSpecification @@ -2708,6 +2717,16 @@ "Created: / 19-01-2012 / 15:36:47 / cg" ! +fetchAttributesFromProjectDefinition + self fetchSelectedProject. + selectedProjectDefinition notNil ifTrue:[ + self productNameHolder value: selectedProjectDefinition productName. + self companyNameHolder value: selectedProjectDefinition companyName. + ]. + + "Created: / 04-09-2012 / 09:50:46 / cg" +! + rememberMakeOutputsContents makeOutputHolder value:(makeOutputWindow contents) ! @@ -2726,6 +2745,12 @@ ]. ! +rememberUsedCompiler + LastUsedCompiler := self usedCompilerHolder value. + + "Created: / 04-09-2012 / 09:45:42 / cg" +! + restoreMakeOutputsContents makeOutputWindow contents:makeOutputHolder value !