VM Maker: CMakeVMMakerSqueak-tty.59.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: CMakeVMMakerSqueak-tty.59.mcz

commits-2
 
Timothy M uploaded a new version of CMakeVMMakerSqueak to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMakerSqueak-tty.59.mcz

==================== Summary ====================

Name: CMakeVMMakerSqueak-tty.59
Author: tty
Time: 16 June 2014, 7:42:06.412 pm
UUID: d9697c5e-41f3-4fb3-8c34-dc0f134d3520
Ancestors: CMakeVMMakerSqueak-tty.58

reroute setGlobalOptions: aMaker to allow customization by Configurations by buildType.

Fix bug in configureForBuildType: aSymbol that incorrectly set the buildType: value

Generated build and it compiled.

Tests all pass.

=============== Diff against CMakeVMMakerSqueak-tty.58 ===============

Item was changed:
  ----- Method: Linux32x86Config>>configureForBuildType: (in category 'cmake') -----
  configureForBuildType: aSymbol
+ | d |
- | d info |
  "provide a concrete builder with the buildType and configureBuildX method to invoke"
- info := SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  self configureNoBuildType.                "reset all internal flags"
  d
  at: #build
+ put: [self buildType:#build.  self configureBuild];
- put: [self buildType:(info at:#build).  self configureBuild];
 
  at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
- put: [self buildType:(info at: #buildAssert).   self configureBuildAssert];
 
  at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
- put:     [ self buildType:(info at: #buildAssertITimerHeartbeat ).   self configureBuildAssertITimerHeartbeat];
 
              at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
- put: [self buildType:(info at: #buildDebug ).  self configureBuildDebug];
 
  at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
- put:  [self buildType:(info at: #buildDebugITimerHeartbeat).   self configureBuildDebugITimerHeartbeat];
 
  at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
- put: [self buildType:(info at: #buildDebugMultiThreaded ).   self configureBuildDebugMultiThreaded];
 
  at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
- put: [self buildType:(info at:#buildITimerHeartbeat ).    self configureBuildIHeartbeatTimer];
 
  at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
- put:  [self buildType:(info at:#buildMultiThreaded ). self configureBuildMultiThreaded];
 
  at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
- put: [self buildType:(info at: #buildMultiThreadedAssert). self configureBuildMultiThreadedAssert];
 
  at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
- put: [self buildType: (info at: #buildMultiThreadedDebug). self configureBuildMultiThreadedDebug].
 
       ^(d at: aSymbol).!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Configz>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: Linux32x86SqueakStackSpurConfigz>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Configz>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: Linux64Config>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was changed:
  ----- Method: Linux64x86w32BitConfig>>configureForBuildType: (in category 'cmake') -----
  configureForBuildType: aSymbol
+ | d |
- | d info |
  "provide a concrete builder with the buildType and configureBuildX method to invoke"
- info := SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  self configureNoBuildType.                "reset all internal flags"
  d
  at: #build
+ put: [self buildType:#build.  self configureBuild];
- put: [self buildType:(info at:#build).  self configureBuild];
 
  at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
- put: [self buildType:(info at: #buildAssert).   self configureBuildAssert];
 
  at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
- put:     [ self buildType:(info at: #buildAssertITimerHeartbeat ).   self configureBuildAssertITimerHeartbeat];
 
              at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
- put: [self buildType:(info at: #buildDebug ).  self configureBuildDebug];
 
  at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
- put:  [self buildType:(info at: #buildDebugITimerHeartbeat).   self configureBuildDebugITimerHeartbeat];
 
  at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
- put: [self buildType:(info at: #buildDebugMultiThreaded ).   self configureBuildDebugMultiThreaded];
 
  at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
- put: [self buildType:(info at:#buildITimerHeartbeat ).    self configureBuildIHeartbeatTimer];
 
  at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
- put:  [self buildType:(info at:#buildMultiThreaded ). self configureBuildMultiThreaded];
 
  at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
- put: [self buildType:(info at: #buildMultiThreadedAssert). self configureBuildMultiThreadedAssert];
 
  at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
- put: [self buildType: (info at: #buildMultiThreadedDebug). self configureBuildMultiThreadedDebug].
 
       ^(d at: aSymbol).!

Item was changed:
  ----- Method: Linux64x86w32BitConfig>>setGlobalOptions: (in category 'utils') -----
+ setGlobalOptions: aMaker
+ "SystemNavigation default browseMethodsWhoseNamesContain: 'setGlobalOptions:'
- setGlobalOptions: maker
-
- maker set: 'CMAKE_C_COMPILER' to: '/usr/bin/gcc'.
- maker set: 'CMAKE_CXX_COMPILER' to: '/usr/bin/g++'.
- " maker set: 'CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}' to: ' /usr/lib/gcc/x86_64-slackware-linux/4.8.2/'.
- set any CMake global options, before declaring a project in cmake file
 
+ we subclass this in our concrete builder and route it to "
+
+ ^self setGlobalOptions: aMaker buildType: (buildType asSymbol)
+ !
- set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /opt/local/lib)
- SystemNavigation default browseMethodsWhoseNamesContain: 'setGlobalOptions:'
- "!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptions:buildType: (in category 'utils') -----
+ setGlobalOptions: aMaker buildType: aBuildType
+ "invoke correct setGlobalOptions for this buildType to allow per-buildType customization'"
+
+ |d |
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ d
+ at: #build put: [self setGlobalOptionsBuild: aMaker];
+ at: #buildAssert  put: [self setGlobalOptionsBuildAssert: aMaker];
+ at: #buildAssertITimerHeartbeat  put: [self setGlobalOptionsBuildAssertITimerHeartbeat: aMaker];
+             at:#buildDebug  put: [self setGlobalOptionsBuildDebug: aMaker];   "located in CMakeVMMaker CPlatformConfig"
+ at: #buildDebugITimerHeartbeat  put: [self setGlobalOptionsBuildDebugITimerHeartbeat: aMaker ];
+ at: #buildDebugMultiThreaded  put: [self setGlobalOptionsBuildDebugMultiThreaded: aMaker];
+ at: #buildITimerHeartbeat  put: [self setGlobalOptionsBuildITimerHeartbeat: aMaker];
+ at: #buildMultiThreaded  put: [self setGlobalOptionsBuildMultiThreaded: aMaker ];
+ at: #buildMultiThreadedAssert  put: [self setGlobalOptionsBuildMultiThreadedAssert: aMaker];
+ at: #buildMultiThreadedDebug   put: [self setGlobalOptionsBuildMultiThreadedDebug: aMaker ];
+ at: #buildNone put:[self setGlobalOptionsBuildNone: aMaker].
+
+ ^((d at: ( aBuildType)) value)
+ !

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuild: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuild: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildAssert: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildAssert: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildAssertITimerHeartbeat: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildAssertITimerHeartbeat: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildDebug: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildDebug: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildDebugITimerHeartbeat: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildDebugITimerHeartbeat: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildITimerHeartbeat: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildITimerHeartbeat: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ self break.
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildMultiThreaded: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildMultiThreaded: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildMultiThreadedAssert: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildMultiThreadedAssert: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>setGlobalOptionsBuildMultiThreadedDebug: (in category 'cmake config build type ') -----
+ setGlobalOptionsBuildMultiThreadedDebug: aMaker
+ "convenience method to customize setGlobalOptions: aMaker for this build type.
+ Default is in CPlatformConfig>setGlobalOptions: aMaker setGlobalOptions: aMaker"
+ ^super setGlobalOptions: aMaker!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: SqueakBSDConfig>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was changed:
  ----- Method: SqueakCMakeVMMakerAbstractBuilder>>configureABuildFor:withBuildType: (in category 'building') -----
  configureABuildFor: configSymbol withBuildType: typeSymbol
  | i |
  self flag:'tty'. "excludeFromBuild returning True does not exit gracefully"
  "Do some sanity checks, then set the internal state of a Configuration for a particular build type. "
  [
  ((Smalltalk at: configSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
  ifTrue:[
  config := (Smalltalk at: configSymbol) new.                              "verify this config can handle this build type."
  config excludeFromBuild                                                         "has a developer excluded this build manually?"
  ifTrue:[^self userErrorConfigMarkedAsExcludeFromBuild: configSymbol].  
  i:=config availableBuilds indexOf:typeSymbol                                    
  ifAbsent:[^self userErrorInvalidBuildType: typeSymbol "this config does not support this build type"
  forConfiguration: configSymbol
  hasTypes: config availableBuilds].
-
  (config configureForBuildType: typeSymbol) value.                             "config configure yourself"
  ^self]
  ifFalse:[^self userErrorInvalidTarget: configSymbol]
  ] ifError:[^'error configureABuildFor: ''', configSymbol].
 
  ^nil.
 
 
  !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: SqueakSunOS32x86Config>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was added:
+ ----- Method: SqueakWin32x86Config>>configureForBuildType: (in category 'cmake configuration') -----
+ configureForBuildType: aSymbol
+ | d |
+ "provide a concrete builder with the buildType and configureBuildX method to invoke"
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ self configureNoBuildType.                "reset all internal flags"
+ d
+ at: #build
+ put: [self buildType:#build.  self configureBuild];
+
+ at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
+
+ at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
+
+             at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
+
+ at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
+
+ at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
+
+ at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
+
+ at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
+
+ at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
+
+ at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
+
+      ^(d at: aSymbol).!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>configureForBuildType: (in category 'cmake configuration') -----
  configureForBuildType: aSymbol
+ | d |
- | d info |
  "provide a concrete builder with the buildType and configureBuildX method to invoke"
- info := SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  self configureNoBuildType.                "reset all internal flags"
  d
  at: #build
+ put: [self buildType:#build.  self configureBuild];
- put: [self buildType:(info at:#build).  self configureBuild];
 
  at: #buildAssert
+ put: [self buildType: #buildAssert.   self configureBuildAssert];
- put: [self buildType:(info at: #buildAssert).   self configureBuildAssert];
 
  at: #buildAssertITimerHeartbeat
+ put:     [ self buildType: #buildAssertITimerHeartbeat.   self configureBuildAssertITimerHeartbeat];
- put:     [ self buildType:(info at: #buildAssertITimerHeartbeat ).   self configureBuildAssertITimerHeartbeat];
 
              at:#buildDebug
+ put: [self buildType: #buildDebug.  self configureBuildDebug];
- put: [self buildType:(info at: #buildDebug ).  self configureBuildDebug];
 
  at: #buildDebugITimerHeartbeat
+ put:  [self buildType: #buildDebugITimerHeartbeat.   self configureBuildDebugITimerHeartbeat];
- put:  [self buildType:(info at: #buildDebugITimerHeartbeat).   self configureBuildDebugITimerHeartbeat];
 
  at: #buildDebugMultiThreaded
+ put: [self buildType: #buildDebugMultiThreaded.   self configureBuildDebugMultiThreaded];
- put: [self buildType:(info at: #buildDebugMultiThreaded ).   self configureBuildDebugMultiThreaded];
 
  at: #buildITimerHeartbeat
+ put: [self buildType:#buildITimerHeartbeat.    self configureBuildIHeartbeatTimer];
- put: [self buildType:(info at:#buildITimerHeartbeat ).    self configureBuildIHeartbeatTimer];
 
  at: #buildMultiThreaded
+ put:  [self buildType:#buildMultiThreaded . self configureBuildMultiThreaded];
- put:  [self buildType:(info at:#buildMultiThreaded ). self configureBuildMultiThreaded];
 
  at: #buildMultiThreadedAssert
+ put: [self buildType: #buildMultiThreadedAssert. self configureBuildMultiThreadedAssert];
- put: [self buildType:(info at: #buildMultiThreadedAssert). self configureBuildMultiThreadedAssert];
 
  at: #buildMultiThreadedDebug  
+ put: [self buildType: #buildMultiThreadedDebug. self configureBuildMultiThreadedDebug].
- put: [self buildType: (info at: #buildMultiThreadedDebug). self configureBuildMultiThreadedDebug].
 
       ^(d at: aSymbol).!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>setGlobalOptions: (in category 'utils') -----
  setGlobalOptions: maker
+ "SystemNavigation default browseMethodsWhoseNamesContain: 'setGlobalOptions:'
- self required
- "set any CMake global options, before declaring a project in cmake file
 
+ we subclass this in our concrete builder and route it to
- maker set: 'CMAKE_C_COMPILER' to: '/usr/bin/gcc'.
- maker set: 'CMAKE_CXX_COMPILER' to: '/usr/bin/g++'.
 
+ ^self setGlobalOptions: aMaker buildType: (self buildType asSymbol)
+
+ "
+ self required
+
+ !
- SystemNavigation default browseMethodsWhoseNamesContain: 'setGlobalOptions:'
- "!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setGlobalOptions:buildType: (in category 'utils') -----
+ setGlobalOptions: aMaker buildType: aBuildType
+ "invoke correct setGlobalOptions for this buildType to allow per-buildType customization'"
+
+ |d |
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ d
+ at: #build put: [self setGlobalOptionsBuild: aMaker];
+ at: #buildAssert  put: [self setGlobalOptionsBuildAssert: aMaker];
+ at: #buildAssertITimerHeartbeat  put: [self setGlobalOptionsBuildAssertITimerHeartbeat: aMaker];
+             at:#buildDebug  put: [self setGlobalOptionsBuildDebug: aMaker];   "located in CMakeVMMaker CPlatformConfig"
+ at: #buildDebugITimerHeartbeat  put: [self setGlobalOptionsBuildDebugITimerHeartbeat: aMaker ];
+ at: #buildDebugMultiThreaded  put: [self setGlobalOptionsBuildDebugMultiThreaded: aMaker];
+ at: #buildITimerHeartbeat  put: [self setGlobalOptionsBuildITimerHeartbeat: aMaker];
+ at: #buildMultiThreaded  put: [self setGlobalOptionsBuildMultiThreaded: aMaker ];
+ at: #buildMultiThreadedAssert  put: [self setGlobalOptionsBuildMultiThreadedAssert: aMaker];
+ at: #buildMultiThreadedDebug   put: [self setGlobalOptionsBuildMultiThreadedDebug: aMaker ];
+ at: #buildNone put:[self setGlobalOptionsBuildNone: aMaker].
+
+ ^(d at: ( aBuildType)) value
+ !

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>setGlobalOptionsBuildNone: (in category 'cmake config build type ') -----
  setGlobalOptionsBuildNone: aMaker
+ "SHOULD NOT HAPPEN"
+ self halt.!
- self required.!