[Vm-dev] VM Maker: CMakeVMMaker-EstebanLorenzano.155.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Apr 13 09:24:12 UTC 2012
Esteban Lorenzano uploaded a new version of CMakeVMMaker to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.155.mcz
==================== Summary ====================
Name: CMakeVMMaker-EstebanLorenzano.155
Author: EstebanLorenzano
Time: 13 April 2012, 11:23:51 am
UUID: daf3d6f1-2fae-424f-b0f5-af3c896eb7ab
Ancestors: CMakeVMMaker-IgorStasenko.154
empty log message
=============== Diff against CMakeVMMaker-IgorStasenko.154 ===============
Item was changed:
----- Method: CMakePluginGenerator>>generate (in category 'code generation') -----
generate
| name |
output := String new writeStream.
name := plugin moduleName.
self
printHeader;
project: name;
"include directories generated for build"
include: '../directories.cmake'.
self set: 'CMAKE_CONFIGURATION_TYPES' to: 'Release'.
self message: (internal ifTrue: [ 'Adding internal plugin: '] ifFalse: ['Adding external plugin: ']) , name.
self
set: #pluginName toString: name;
set: #pluginSrc toString: '${srcPluginsDir}/', name;
set: #pluginCross toString: '${crossDir}/plugins/', name;
set: #pluginPlatform toString: '${targetPlatform}/plugins/', name.
internal
ifTrue: [ self puts: 'add_definitions(-DSQUEAK_BUILTIN_PLUGIN)'].
self addSources: { name , '.c' } prefixed: '${pluginSrc}/'.
" default include directories for plugin "
self includeDirectories: '${pluginSrc} ${pluginCross} ${targetPlatform}/plugins/${pluginName}'.
+ "Not needed because there are already there (inherited from main configuration)"
+ "self addDefinitions: vmGen config compilerFlags."
- self addDefinitions: vmGen config compilerFlags.
" perform config's configureXYZ: message to apply per-plugin custom rules, if any "
vmGen config configurePlugin: plugin with: self.
extraRules ifNotNil: [ extraRules value: self ].
" generate a static lib for internal plugin, or shared for external"
internal ifTrue: [
self cmd: 'add_library' params: name , ' STATIC ${sources}'.
] ifFalse: [
self cmd: 'add_library' params: name , ' SHARED ${sources}'.
" self cmd: 'set_property' params: 'TARGET ' , name , ' PROPERTY LINK_FLAGS -bundle'"
].
vmGen config extraPluginSettings: self.
self isExternal ifTrue: [
self cmd: 'target_link_libraries'
params: self moduleName , ' ${LINKLIBS}'.
].
" see senders of #linkFlags "
self
cmd: 'set_property'
params: 'TARGET ', name, ' PROPERTY LINK_FLAGS "${linkFlags}"'.
self saveFile.!
Item was changed:
----- Method: CocoaIOSConfig>>compilerFlags (in category 'accessing') -----
compilerFlags
| releaseFlags |
releaseFlags := self isGenerateForRelease
ifTrue: [ self compilerFlagsRelease ]
ifFalse: [ self compilerFlagsDebug ].
^String streamContents: [ :stream |
+ (self commonCompilerFlags, releaseFlags) asSet
- (self commonCompilerFlags, releaseFlags)
do: [ :each | stream nextPutAll: each ]
separatedBy: [ stream space ] ]!
Item was changed:
----- Method: CogFamilyCocoaIOSConfig>>setExtraTargetProperties: (in category 'settings') -----
setExtraTargetProperties: maker
| plist |
maker addFrameworks: self frameworks.
" generated and add Info.plist file "
plist := self plistFile.
(maker buildDir forceNewFileNamed: 'Info.plist')
nextPutAll: plist;
close.
maker
addProperty: 'MACOSX_BUNDLE_INFO_PLIST'
value: '${buildDir}/Info.plist'.
(maker buildDir forceNewFileNamed: self prefixHeaderFileName)
nextPutAll: self precompiledHeaders;
close.
maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', self prefixHeaderFileName.
maker
addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-DLSB_FIRST -mfpmath=sse -finline-functions -fno-cse-follow-jumps -fno-gcse -mtune=prescott -march=pentium-m -falign-functions=16'.
"maker
addXCodeProperty: 'GCC_VERSION' value: '4.3'."
maker
cmd: 'set_target_properties'
params: self executableName, ' PROPERTIES COMPILE_FLAGS "-include \"', (self buildDir / self prefixHeaderFileName) fullName, '\""'.
maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir.
maker set: 'RUNTIME_OUTPUT_DIRECTORY' toString: self outputDir.!
Item was changed:
----- Method: StackIPhoneConfig>>setExtraTargetProperties: (in category 'settings') -----
setExtraTargetProperties: maker
"super setExtraTargetProperties: maker."
| precompiledHeaders plist |
precompiledHeaders := (self executableName, '_Prefix.pch').
(maker buildDir forceNewFileNamed: precompiledHeaders)
nextPutAll: self precompiledHeaders;
close.
maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', precompiledHeaders.
self setCommonProperties: maker.
" generated and add Info.plist file "
plist := self plistFile.
(maker buildDir forceNewFileNamed: 'Info.plist')
nextPutAll: plist;
close.
maker addProperty: 'MACOSX_BUNDLE_INFO_PLIST' value: '${buildDir}/Info.plist'.
maker
cmd: 'set_target_properties'
params: self executableName, ' PROPERTIES COMPILE_FLAGS "-include \"', (self buildDir / self prefixHeaderFileName) fullName, '\""'.
maker set: 'CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY' toString: self codeSignIdentity.
maker set: 'CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY' toString: self targetedDeviceFamilyAsString.
maker set: 'CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET' to: self deploymentTargetVersion.
-
maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir.!
More information about the Vm-dev
mailing list