Igor Stasenko uploaded a new version of CMakeVMMaker to project VM Maker: http://source.squeak.org/VMMaker/CMakeVMMaker-IgorStasenko.173.mcz
==================== Summary ====================
Name: CMakeVMMaker-IgorStasenko.173 Author: IgorStasenko Time: 3 September 2012, 6:17:57.164 pm UUID: a394422a-ae17-4430-aa7b-abf7f2a25724 Ancestors: CMakeVMMaker-EstebanLorenzano.170
added a build script generation protocol.
a config must answer a string from #buildScript message, this string will be placed into
build/build.sh
bash script file, which users then can just run to build everything.
=============== Diff against CMakeVMMaker-EstebanLorenzano.170 ===============
Item was changed: ----- Method: CMakeVMGenerator>>generate (in category 'code generation') ----- generate | intPlugins extPlugins | output := String new writeStream. config setGlobalOptions: self. self printHeader; project: config executableName.
config setupDirectories: self. + - self message: '${CMAKE_MODULE_PATH}'. self set: 'CMAKE_CONFIGURATION_TYPES' to: 'Release'.
config preferredIncludes do: [ :each | self includeDirectories: each ]. self includeDirectories: self includeDirs. config standardIncludes do: [:each | self includeDirectories: each ].
self addDefinitions: config compilerFlags.
config extraVMSettings: self. self puts: 'add_executable(' , config executableName, ' ', config executableType, ' ' , self sources , ')'. intPlugins := self generatePluginConfigs: config internalPlugins internal: true. extPlugins := self generatePluginConfigs: config externalPlugins internal: false. self processThirdpartyLibraries. - - self processPlugins: intPlugins, extPlugins.
config setExtraTargetProperties: self. self cmd: 'target_link_libraries' params: self moduleName , ' ${LINKLIBS}'.
config postBuildActions: self. self saveFile. + self generateBuildScript.! - !
Item was added: + ----- Method: CMakeVMGenerator>>generateBuildScript (in category 'build script') ----- + generateBuildScript + + (self buildDir forceNewFileNamed: 'build.sh') nextPutAll: (config fixLineEndsOf: config buildScript); close. + !
Item was added: + ----- Method: CPlatformConfig>>buildScript (in category 'build script') ----- + buildScript + "answer the build script for building everything" + + + ^ + '#!!bash + ../codegen-scripts/extract-commit-info.sh + cmake . + make + + '!
Item was added: + ----- Method: CogFamilyUnixConfig>>buildScript (in category 'build script') ----- + buildScript + "answer the build script for building everything" + + + ^ + '#!!bash + ../codegen-scripts/extract-commit-info.sh + cmake . + make + + '!
Item was added: + ----- Method: CogFamilyWindowsConfig>>buildScript (in category 'as yet unclassified') ----- + buildScript + "answer the build script for building everything" + + + ^ + '#!!bash + ../codegen-scripts/extract-commit-info.sh + cmake -G "MSYS Makefiles" . + make + + '!
Item was added: + ----- Method: MacOSConfig>>buildScript (in category 'build script') ----- + buildScript + "answer the build script for building everything" + + + ^ + '#!!bash + ../codegen-scripts/extract-commit-info.sh + cmake . + make + make install + + '!
vm-dev@lists.squeakfoundation.org