[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.93.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Nov 27 15:27:31 UTC 2014


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

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

Name: CMakeVMMakerSqueak-tty.93
Author: tty
Time: 27 November 2014, 10:27:39.203 am
UUID: 5e3bd702-302a-41c3-880e-bc784a9d7e4c
Ancestors: CMakeVMMakerSqueak-tty.92

Added a stub START HERE help class after returning to the project after several months and realizing I had forgotten everything and there was no documentation on things a newbie would need to get familiarized with creating builds.

=============== Diff against CMakeVMMakerSqueak-tty.92 ===============

Item was changed:
  ----- Method: CMakeVMGeneratorForSqueak>>generateByTemplate (in category 'code generation') -----
  generateByTemplate
  	"attempt to move way from string based writing to  template based. Think Seaside renderOn composition"
  	| extPlugins intPlugins |
  	self flag: 'tty'. "refactor so that the cascade reflects CMake terminilogy"
  	output := String new writeStream.
  	config templates: OrderedCollection new. 
+ 	self break.
  	config 
  		setGlobalOptions: self;    
  		cmakePrefixPath;
  		cmakeIncludePath;
  		cmakeLibraryPath;
  		cmakeIncludeModules;          
  		cmakeCFlags;          
  		cmakeAddDefinitions;
+ 		cmakeWriteDirectoriesDotCmake:  self;
+ 		cmakeIncludeDirectories:  self;   "<---"
+ 		preferredIncludes;                      "<---why 3  of em?"
+ 		standardIncludes;                       "<---"
  		setGlobalOptionsAfterDetermineSystem: self;    
+ 		extraVMSettings: self;                "<--catch-all method. os/platform specific"
- 		setDirectories:  self;
- 		cmakeIncludeDirectories:  self;
- 		preferredIncludes;
- 		standardIncludes;
- 		extraVMSettings: self;
  		setCoreSources: self;
  		setPlatformSources: self;
  		setCrossSources: self;
  		setExtraSources;
  		cmakeSetSourceFilesProperties;
  		cmakeListAppend:'LINKLIBS' elements: (config externalLibs);
  		cmakeAddExecutableNameOptionSource: self;
  	      setExecutableOutputPath;
  		addVMPlugins: self.
  	config templates do: [:each | self puts: each content].
  	extPlugins := self generatePluginConfigs: config internalPlugins internal: true.
  	 intPlugins := self generatePluginConfigs: config externalPlugins internal: false.
  	self processThirdpartyLibraries.
  	self processPlugins:  intPlugins, extPlugins.
  	self cmd: 'target_link_libraries'
  		params: self moduleName , ' ${LINKLIBS}'.
  	config postBuildActions: self..
  	self saveFile.
  	self generateBuildScript!

Item was changed:
  ----- Method: CMakeVMMakerSqueakDeveloperHelp class>>pages (in category 'pages') -----
  pages
+ 	^#(overview prerequisites  terms igorStasenkoDesign  tests buildersAndConfigs plugins pthreads configDotCmake templates vmplugins)!
- 	^#(overview prerequisites  terms igorStasenkoDesign  buildersAndConfigs plugins pthreads configDotCmake templates vmdrivers)!

Item was added:
+ ----- Method: CMakeVMMakerSqueakDeveloperHelp class>>tests (in category 'pages') -----
+ tests
+ 	^HelpTopic
+ 		title:'Tests'
+ 		contents:
+ '
+ When all tests pass. This does not mean the classes are configured correctly for source,output and build directories.
+ 
+ It does mean nothing structural is preventing that from being implemented.
+ 
+ '!

Item was removed:
- ----- Method: CMakeVMMakerSqueakDeveloperHelp class>>vmdrivers (in category 'pages') -----
- vmdrivers
- 	^HelpTopic
- 		title:'VMDrivers'
- 		contents:'
- 
- TODO CMakeVMMakerSqueak-VMDriver purpose, configuration and use'!

Item was added:
+ ----- Method: CMakeVMMakerSqueakDeveloperHelp class>>vmplugins (in category 'pages') -----
+ vmplugins
+ 	^HelpTopic
+ 		title:'VMPlugins'
+ 		contents:'
+ 
+ TODO CMakeVMMakerSqueak-VMPlugin purpose, configuration and use'!

Item was added:
+ ----- Method: CMakeVMMakerSqueakHelp class>>key (in category 'accessing') -----
+ key
+ 	^'CMakeVMMakerSqueakHelp'!

Item was changed:
  ----- Method: CMakeVMMakerSqueakHelp class>>pages (in category 'accessing') -----
  pages
+ 	^#(CMakeVMMakerSqueakStartHereHelp CMakeVMMakerSqueakDeveloperHelp CMakeVMMakerSqueakBuildersHelp CMakeVMMakerSqueakHowToCreateNewConfigurationHelp)!
- 	^#(CMakeVMMakerSqueakDeveloperHelp CMakeVMMakerSqueakBuildersHelp CMakeVMMakerSqueakHowToCreateNewConfigurationHelp)!

Item was added:
+ CMakeVMMakerSqueakHelp subclass: #CMakeVMMakerSqueakStartHereHelp
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMakerSqueak-Help'!

Item was added:
+ ----- Method: CMakeVMMakerSqueakStartHereHelp class>>bookName (in category 'accessing') -----
+ bookName
+ 	^'CMakeVMMaker Start Here'!

Item was added:
+ ----- Method: CMakeVMMakerSqueakStartHereHelp class>>pages (in category 'accessing') -----
+ pages
+ 	^#(scratch shortVersionLinuxBuild)!

Item was added:
+ ----- Method: CMakeVMMakerSqueakStartHereHelp class>>scratch (in category 'pages') -----
+ scratch
+ 	^HelpTopic
+ 		title: 'Start Here Scratch'
+ 		contents:
+ 'Goal is that a complete newbie can open this and get up and running.
+ 
+ '!

Item was added:
+ ----- Method: CMakeVMMakerSqueakStartHereHelp class>>shortVersionLinuxBuild (in category 'pages') -----
+ shortVersionLinuxBuild
+ 	^HelpTopic
+ 		title: 'Short  Version Linux Build'
+ 		contents:
+ 'These steps will familiarize you with the CMakeVMMaker system from a user perspective. At the end of this Help Topic you should have a working system for Linux.
+ Each step is an action followed by an explanation of what you are looking at.
+ 
+ 1. (SqueakLinux64x86w32CompatBuilder default) browseHierarchy
+ 
+     CMakeVmMakerSqueak uses Builders to build builds. 
+     The author''s system is a 64 bit architecture with 32 bit compatability libraries installed, so he uses the SqueakLinux64x86w32CompatBuilder.
+      Builder.
+ 
+ 2. (SqueakLinux64x86w32CompatBuilder default) browse	
+     The Classes in the CMakeVMMakerSqueak-Builder Class Category are named with the convention "Squeak[Operating System][Architecture][Miscelaneous]Builder".
+       
+      If you are compiling on a pure 32 bit linux box, use the  (SqueakLinux32x86Builder default)    builder
+     
+       A pure 64 bit linux build would require the (SqueakLinux32x86_64Builder default)  builder.
+        
+      The same convention holds for other operating systems (mac, windows, etc) 
+ 
+ 2.  (SqueakLinux64x86w32CompatBuilder default) configurationsCategory  inspect
+ 
+      In CmakeVMMakerSqueak, Builders utilize "Configurations" to generate "builds".
+      Configurations are classes and are stored in specific class categories .
+      Open a browser and look in the "CMakeVMMakerSqueak-Linux64X86-32BitCompatibility" category and you will see the Configuration classes available for that builder.
+ 
+       
+      
+ 3. (SqueakLinux64x86w32CompatBuilder default) allAvailableBuildTypes
+ 
+ 
+ do c
+ 
+ '!

Item was added:
+ ----- Method: CPlatformConfigForSqueak>>cmakeWriteDirectoriesDotCmake: (in category 'cmake') -----
+ cmakeWriteDirectoriesDotCmake: aMaker
+ 	"SystemNavigation default browseMethodsWhoseNamesContain: 'setupDirectories:'"
+ 	self subclassResponsibility!

Item was removed:
- ----- Method: CPlatformConfigForSqueak>>vmdrivers (in category 'accessing') -----
- vmdrivers
- 	^vmdrivers!

Item was added:
+ ----- Method: CPlatformConfigForSqueak>>vmplugins (in category 'accessing') -----
+ vmplugins
+ 	^vmplugins!

Item was removed:
- ----- Method: Linux64x86w32BitConfig>>zaddVMDriversBuild: (in category 'cmake buildType redirects') -----
- zaddVMDriversBuild: aMaker
- 	|temp o|
- 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
- 	o := String new writeStream.
- 	temp := OrderedCollection new.
- 	(enabledebugmessages)
- 		ifTrue:[	templates 
- 		addLast:((CMakeMessage new) message: (self class name) , 'addVMDriversBuild:')
- 	] .
- 	temp
- "			cmakeGen printHeader;
- 			project: name;
- 			include: '../directories.cmake';"
- 		addLast: ((CMakeHeader new)  configurationName:  self class name );
- 		addLast: ((CMakeProject new)variable: self executableName  );
- 		addLast: ((CMakeInclude new) file: ((self buildDirName), FileDirectory slash, 'directories.cmake')); "??"
- 		addLast:((CMakeAddDefinitions new) definitions: self compilerFlags asOrderedCollection);
- 		addLast:((CMakeAddDefinitions new) definitions: (OrderedCollection with:'-fPIC' with:'-DPIC' ));
- 		addLast:((CMakeSet new) variable:'sources' quotedValue: '${targetPlatform}/vm-display-null/sqUnixDisplayNull');
- 		addLast:((CMakeAddLibrary new) 
- 			library: 'vm-display-null' 
- 			type: 'SHARED' 
- 			sources:  #('${targetPlatform}/vm-display-null/sqUnixDisplayNull'));
- 		addLast: ((CMakeIncludeDirectories new) 
- 				dirs: (OrderedCollection 
- 				with: #('${crossDir}/plugins/FilePlugin' '${targetPlatform}/plugins/B3DAcceleratorPlugin' '${crossDir}/plugins/B3DAcceleratorPlugin')));
- 		addLast:((CMakeSet new) variable: 'LIBRARY_OUTPUT_PATH' quotedValue:'self outputDir fullName');
- 		addLast:((CMakeListAppend new) list: 'LINKLIBS' elements: (self externalLibs));
- 		addLast:((CMakeTargetLinkLibraries new) target: 'vm-display-null'  items: (OrderedCollection with: '${LINKLIBS}'));
- 		addLast:((CMakeSetTargetProperties new) 
- 			target: 'vm-display-null' 
- 			propertiesandvalues: (OrderedCollection with: 'PREFIX "" '  with: 'SUFFIX "" ' with: 'LINK_FLAGS ' , (self compilerFlags))).
- 
- 	temp do: [:each |  o nextPutAll: (each content); cr].
- 	self write: (o contents) toFile: 'directories.cmake'.
- 	(enabledebugmessages)
- 		ifTrue:[	
- 	templates 
- 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
- 	].
- 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
- 
- 
- 	aMaker message: 'addVMDrivers: aMaker'.
- 	 self 
- 		addDriver: 'vm-display-null' 
- 		sources: #( 
- 			'${targetPlatform}/vm-display-null/sqUnixDisplayNull' )
- 		generator: aMaker
- 		externalLibs: #();
- 		
- 		addDriver: 'vm-display-X11' 
- 		sources: #( 
- 			'${targetPlatform}/vm-display-X11/sqUnixX11'
- 			'${targetPlatform}/vm-display-X11/sqUnixMozilla' )
- 		generator: aMaker
- 		externalLibs: (self externalLibs);  "#( SM ICE GL X11 nsl dl); "
- 
- 		addDriver: 'vm-sound-ALSA' 
- 		sources: #( 
- 			'${targetPlatform}/vm-sound-ALSA/sqUnixSoundALSA' )
- 		generator: aMaker
- 		externalLibs: #();
- 
- 		addDriver: 'vm-sound-null' 
- 		sources: #( 
- 			'${targetPlatform}/vm-sound-null/sqUnixSoundNull' )
- 		generator: aMaker
- 		externalLibs: #().
- !

Item was added:
+ ----- Method: SqueakMacintoshConfig>>cmakeWriteDirectoriesDotCmake: (in category 'cmake') -----
+ cmakeWriteDirectoriesDotCmake: aMaker
+ 	|temp o|
+ 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
+ 	o := String new writeStream.
+ 	temp := OrderedCollection new.
+ 	temp
+ 		addLast: ((CMakeSet new) variable: 'topDir' quotedValue: (self topDir fullName));
+ 		addLast: ((CMakeSet new) variable: 'buildDir' quotedValue: (self buildDir ifNil: ['${topDir}/build'] ifNotNil: [self buildDir fullName]));
+ 		addLast: ((CMakeSet new) variable: 'thirdpartyDir' quotedValue: '${buildDir}/thirdParty');
+ 		addLast: ((CMakeSet new) variable: 'platformsDir' quotedValue: (self platformsDir));
+ 		addLast: ((CMakeSet new) variable: 'srcDir' quotedValue: (self srcDir pathName));
+ 		addLast: ((CMakeSet new) variable: 'srcPluginsDir' quotedValue: (pluginsDir ifNil: [ '${srcDir}/plugins' ]));
+ 		addLast: ((CMakeSet new) variable: 'srcVMDir' quotedValue: '${srcDir}/vm');
+ 		addLast: ((CMakeSet new) variable: 'platformName' quotedValue: (self platformName));
+ 		addLast: ((CMakeSet new) variable: 'targetPlatform' quotedValue: '${platformsDir}/${platformName}');
+ 		addLast: ((CMakeSet new) variable: 'crossDir' quotedValue: '${platformsDir}/Cross');
+ 		addLast: ((CMakeSet new) variable: 'platformVMDir' quotedValue: '${targetPlatform}/vm}');
+ 		addLast: ((CMakeSet new) variable: 'outputDir' quotedValue: (self outputDir fullName));
+ 		addLast: ((CMakeSet new) variable: 'externalModulesDir' quotedValue: (self externalModulesDir)).
+ 	temp do: [:each |  o nextPutAll: (each content); cr].
+ 	self write: (o contents) toFile: 'directories.cmake'.
+ 	(enabledebugmessages)
+ 		ifTrue:[	
+ 	templates 
+ 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
+ 	].
+ 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
+ 
+ !

Item was removed:
- ----- Method: SqueakMacintoshConfig>>setDirectories: (in category 'cmake') -----
- setDirectories: aMaker
- 	|temp o|
- 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
- 	o := String new writeStream.
- 	temp := OrderedCollection new.
- 	temp
- 		addLast: ((CMakeSet new) variable: 'topDir' quotedValue: (self topDir fullName));
- 		addLast: ((CMakeSet new) variable: 'buildDir' quotedValue: (self buildDir ifNil: ['${topDir}/build'] ifNotNil: [self buildDir fullName]));
- 		addLast: ((CMakeSet new) variable: 'thirdpartyDir' quotedValue: '${buildDir}/thirdParty');
- 		addLast: ((CMakeSet new) variable: 'platformsDir' quotedValue: (self platformsDir));
- 		addLast: ((CMakeSet new) variable: 'srcDir' quotedValue: (self srcDir pathName));
- 		addLast: ((CMakeSet new) variable: 'srcPluginsDir' quotedValue: (pluginsDir ifNil: [ '${srcDir}/plugins' ]));
- 		addLast: ((CMakeSet new) variable: 'srcVMDir' quotedValue: '${srcDir}/vm');
- 		addLast: ((CMakeSet new) variable: 'platformName' quotedValue: (self platformName));
- 		addLast: ((CMakeSet new) variable: 'targetPlatform' quotedValue: '${platformsDir}/${platformName}');
- 		addLast: ((CMakeSet new) variable: 'crossDir' quotedValue: '${platformsDir}/Cross');
- 		addLast: ((CMakeSet new) variable: 'platformVMDir' quotedValue: '${targetPlatform}/vm}');
- 		addLast: ((CMakeSet new) variable: 'outputDir' quotedValue: (self outputDir fullName));
- 		addLast: ((CMakeSet new) variable: 'externalModulesDir' quotedValue: (self externalModulesDir)).
- 	temp do: [:each |  o nextPutAll: (each content); cr].
- 	self write: (o contents) toFile: 'directories.cmake'.
- 	(enabledebugmessages)
- 		ifTrue:[	
- 	templates 
- 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
- 	].
- 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
- 
- !

Item was added:
+ ----- Method: SqueakUnixConfig>>cmakeWriteDirectoriesDotCmake: (in category 'cmake') -----
+ cmakeWriteDirectoriesDotCmake: aMaker
+ 	|temp o|
+ 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
+ 	o := String new writeStream.
+ 	temp := OrderedCollection new.
+ 	temp
+ 		addLast: ((CMakeSet new) variable: 'topDir' quotedValue: (self topDir fullName));
+ 		addLast: ((CMakeSet new) variable: 'buildDir' quotedValue: (self buildDir ifNil: ['${topDir}/build'] ifNotNil: [self buildDir fullName]));
+ 		addLast: ((CMakeSet new) variable: 'thirdpartyDir' quotedValue: '${buildDir}/thirdParty');
+ 		addLast: ((CMakeSet new) variable: 'platformsDir' quotedValue: (self platformsDir));
+ 		addLast: ((CMakeSet new) variable: 'srcDir' quotedValue: (self srcDir pathName));
+ 		addLast: ((CMakeSet new) variable: 'srcPluginsDir' quotedValue: (pluginsDir ifNil: [ '${srcDir}/plugins' ]));
+ 		addLast: ((CMakeSet new) variable: 'srcVMDir' quotedValue: '${srcDir}/vm');
+ 		addLast: ((CMakeSet new) variable: 'platformName' quotedValue: (self platformName));
+ 		addLast: ((CMakeSet new) variable: 'targetPlatform' quotedValue: '${platformsDir}/${platformName}');
+ 		addLast: ((CMakeSet new) variable: 'crossDir' quotedValue: '${platformsDir}/Cross');
+ 		addLast: ((CMakeSet new) variable: 'platformVMDir' quotedValue: '${targetPlatform}/vm}');
+ 		addLast: ((CMakeSet new) variable: 'outputDir' quotedValue: (self outputDir fullName));
+ 		addLast: ((CMakeSet new) variable: 'externalModulesDir' quotedValue: (self externalModulesDir)).
+ 	temp do: [:each |  o nextPutAll: (each content); cr].
+ 	self write: (o contents) toFile: 'directories.cmake'.
+ 	(enabledebugmessages)
+ 		ifTrue:[	
+ 	templates 
+ 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
+ 	].
+ 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
+ 
+ !

Item was removed:
- ----- Method: SqueakUnixConfig>>setDirectories: (in category 'cmake') -----
- setDirectories: aMaker
- 	|temp o|
- 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
- 	o := String new writeStream.
- 	temp := OrderedCollection new.
- 	temp
- 		addLast: ((CMakeSet new) variable: 'topDir' quotedValue: (self topDir fullName));
- 		addLast: ((CMakeSet new) variable: 'buildDir' quotedValue: (self buildDir ifNil: ['${topDir}/build'] ifNotNil: [self buildDir fullName]));
- 		addLast: ((CMakeSet new) variable: 'thirdpartyDir' quotedValue: '${buildDir}/thirdParty');
- 		addLast: ((CMakeSet new) variable: 'platformsDir' quotedValue: (self platformsDir));
- 		addLast: ((CMakeSet new) variable: 'srcDir' quotedValue: (self srcDir pathName));
- 		addLast: ((CMakeSet new) variable: 'srcPluginsDir' quotedValue: (pluginsDir ifNil: [ '${srcDir}/plugins' ]));
- 		addLast: ((CMakeSet new) variable: 'srcVMDir' quotedValue: '${srcDir}/vm');
- 		addLast: ((CMakeSet new) variable: 'platformName' quotedValue: (self platformName));
- 		addLast: ((CMakeSet new) variable: 'targetPlatform' quotedValue: '${platformsDir}/${platformName}');
- 		addLast: ((CMakeSet new) variable: 'crossDir' quotedValue: '${platformsDir}/Cross');
- 		addLast: ((CMakeSet new) variable: 'platformVMDir' quotedValue: '${targetPlatform}/vm}');
- 		addLast: ((CMakeSet new) variable: 'outputDir' quotedValue: (self outputDir fullName));
- 		addLast: ((CMakeSet new) variable: 'externalModulesDir' quotedValue: (self externalModulesDir)).
- 	temp do: [:each |  o nextPutAll: (each content); cr].
- 	self write: (o contents) toFile: 'directories.cmake'.
- 	(enabledebugmessages)
- 		ifTrue:[	
- 	templates 
- 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
- 	].
- 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
- 
- !

Item was added:
+ ----- Method: SqueakWindowsConfig>>cmakeWriteDirectoriesDotCmake: (in category 'cmake') -----
+ cmakeWriteDirectoriesDotCmake: aMaker
+ 	|temp o|
+ 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
+ 	o := String new writeStream.
+ 	temp := OrderedCollection new.
+ 	temp
+ 		addLast: ((CMakeSet new) variable: 'topDir' quotedValue: (self topDir fullName));
+ 		addLast: ((CMakeSet new) variable: 'buildDir' quotedValue: (self buildDir ifNil: ['${topDir}/build'] ifNotNil: [self buildDir fullName]));
+ 		addLast: ((CMakeSet new) variable: 'thirdpartyDir' quotedValue: '${buildDir}/thirdParty');
+ 		addLast: ((CMakeSet new) variable: 'platformsDir' quotedValue: (self platformsDir));
+ 		addLast: ((CMakeSet new) variable: 'srcDir' quotedValue: (self srcDir pathName));
+ 		addLast: ((CMakeSet new) variable: 'srcPluginsDir' quotedValue: (pluginsDir ifNil: [ '${srcDir}/plugins' ]));
+ 		addLast: ((CMakeSet new) variable: 'srcVMDir' quotedValue: '${srcDir}/vm');
+ 		addLast: ((CMakeSet new) variable: 'platformName' quotedValue: (self platformName));
+ 		addLast: ((CMakeSet new) variable: 'targetPlatform' quotedValue: '${platformsDir}/${platformName}');
+ 		addLast: ((CMakeSet new) variable: 'crossDir' quotedValue: '${platformsDir}/Cross');
+ 		addLast: ((CMakeSet new) variable: 'platformVMDir' quotedValue: '${targetPlatform}/vm}');
+ 		addLast: ((CMakeSet new) variable: 'outputDir' quotedValue: (self outputDir fullName));
+ 		addLast: ((CMakeSet new) variable: 'externalModulesDir' quotedValue: (self externalModulesDir)).
+ 	temp do: [:each |  o nextPutAll: (each content); cr].
+ 	self write: (o contents) toFile: 'directories.cmake'.
+ 	(enabledebugmessages)
+ 		ifTrue:[	
+ 	templates 
+ 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
+ 	].
+ 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
+ 
+ !

Item was removed:
- ----- Method: SqueakWindowsConfig>>setDirectories: (in category 'cmake') -----
- setDirectories: aMaker
- 	|temp o|
- 	"We could put these inline, but other components include the directories.cmake file. So, we continue that convention"
- 	o := String new writeStream.
- 	temp := OrderedCollection new.
- 	temp
- 		addLast: ((CMakeSet new) variable: 'topDir' quotedValue: (self topDir fullName));
- 		addLast: ((CMakeSet new) variable: 'buildDir' quotedValue: (self buildDir ifNil: ['${topDir}/build'] ifNotNil: [self buildDir fullName]));
- 		addLast: ((CMakeSet new) variable: 'thirdpartyDir' quotedValue: '${buildDir}/thirdParty');
- 		addLast: ((CMakeSet new) variable: 'platformsDir' quotedValue: (self platformsDir));
- 		addLast: ((CMakeSet new) variable: 'srcDir' quotedValue: (self srcDir pathName));
- 		addLast: ((CMakeSet new) variable: 'srcPluginsDir' quotedValue: (pluginsDir ifNil: [ '${srcDir}/plugins' ]));
- 		addLast: ((CMakeSet new) variable: 'srcVMDir' quotedValue: '${srcDir}/vm');
- 		addLast: ((CMakeSet new) variable: 'platformName' quotedValue: (self platformName));
- 		addLast: ((CMakeSet new) variable: 'targetPlatform' quotedValue: '${platformsDir}/${platformName}');
- 		addLast: ((CMakeSet new) variable: 'crossDir' quotedValue: '${platformsDir}/Cross');
- 		addLast: ((CMakeSet new) variable: 'platformVMDir' quotedValue: '${targetPlatform}/vm}');
- 		addLast: ((CMakeSet new) variable: 'outputDir' quotedValue: (self outputDir fullName));
- 		addLast: ((CMakeSet new) variable: 'externalModulesDir' quotedValue: (self externalModulesDir)).
- 	temp do: [:each |  o nextPutAll: (each content); cr].
- 	self write: (o contents) toFile: 'directories.cmake'.
- 	(enabledebugmessages)
- 		ifTrue:[	
- 	templates 
- 		addLast:((CMakeMessage new) message: (self class name), ' setDirectories: aMaker' )
- 	].
- 	templates addLast: ((CMakeInclude new) file: 'directories.cmake').
- 
- !



More information about the Vm-dev mailing list