[Vm-dev] VM Maker: CMakeVMMaker-EstebanLorenzano.211.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jul 10 10:56:04 UTC 2013


Esteban Lorenzano uploaded a new version of CMakeVMMaker to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.211.mcz

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

Name: CMakeVMMaker-EstebanLorenzano.211
Author: EstebanLorenzano
Time: 10 July 2013, 12:55:47.047 pm
UUID: a8ca745d-b095-4e54-a231-d81692523ba0
Ancestors: CMakeVMMaker-EstebanLorenzano.210

- fixes for building iOS in 2.0

=============== Diff against CMakeVMMaker-EstebanLorenzano.210 ===============

Item was changed:
  ----- Method: StackIPhoneConfig>>buildScript (in category 'build script') -----
  buildScript
  	"answer the build script for building everything"
  	
  
  	^ 
  '#!!bash
  
  if [ !! -e vmVersionInfo.h ]; then
  	../codegen-scripts/extract-commit-info.sh
  fi
  cmake -G Xcode .
+ xcodebuild -sdk {2} -configuration Release -target {1}
- xcodebuild -sdk {sdk} -configuration Release -target {name}
  
+ ' format: {self executableName. self sdkTarget}!
- ' nameFormat: {#name->self executableName. #sdk->self sdkTarget} asDictionary!

Item was changed:
  ----- Method: StackIPhoneConfig>>commonCompilerFlags (in category 'settings') -----
  commonCompilerFlags
  	"Common compiler flags"
  	^{
  	"'-miphoneos-version-min=4.3'. "
+ 	'-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk' format: { self targetDevice. self sdkVersion}.
- 	'-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer/SDKs/{target}{sdkVersion}.sdk' nameFormat: { 'target'-> self targetDevice. 'sdkVersion'->self sdkVersion} asDictionary.
  	'-x objective-c'.
  	'-std=gnu99'.
  	'-falign-functions=16'.
  	'-fno-gcse'.
  	'-fno-cse-follow-jumps'.
  	'-fvisibility=hidden'.
  	'-funroll-loops'.
  	'-finline-functions'.
  	'-mno-thumb'.
  	'-fwrapv'.
  	'-DSTACKVM=1'.
  	'-DCOGMTVM=0'. 
  	'-DUSE_GLOBAL_STRUCT=0'. 
  	'-DBASE_HEADER_SIZE=4'.
  	'-DTARGET_OS_IS_IPHONE'.
  	'-DHAVE_UUID_GENERATE'.
  	"'-DUSE_INLINE_MEMORY_ACCESSORS'. "
  	'-DHAVE_SYS_TIME_H'.
  	'-DLSB_FIRST'.
  	'-DHAVE_NANOSLEEP'.
  	'-DISQUEAK_IMAGE=', self imageName.
  	'-DISQUEAK_SOURCES=PharoV10'.
  	'-DSTACKVM'}!

Item was changed:
  ----- Method: StackIPhoneConfig>>configureFT2Plugin: (in category 'plugin extra rules') -----
  configureFT2Plugin: maker
  	"extra rules for Freetype plugin.
  	a custom rule to build freetype library"
  	| lib devRoot sdkRoot |
  
+ 	devRoot := '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
+ 		format: { self targetDevice}.
+ 	sdkRoot := '{1}/SDKs/{2}{3}.sdk' 
+ 		format: { devRoot. self targetDevice. self sdkVersion}.
- 	devRoot := '/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer'
- 		nameFormat: { 'target'->self targetDevice} asDictionary.
- 	sdkRoot := '{devRoot}/SDKs/{target}{sdkVersion}.sdk' 
- 		nameFormat: {
- 			'devRoot'->devRoot. 
- 			'target'->self targetDevice.
- 			'sdkVersion'->self sdkVersion} asDictionary.
  
  	"add freetype library into loop"
  	lib := self addThirdpartyLibrary: 'freetype2'.
  	lib configurationFlags: ({
  		'--without-zlib'.
  		'--without-bzip2'.
   		'--host=arm-apple-darwin'.
  		'--enable-static=yes'. 
  		'--enable-shared=no'.
+ 		'CC={3}/usr/bin/gcc'.
+ 		'CXX={3}/usr/bin/g++'.
+ 		'CFLAGS=\\"-arch {1} -std=c99 -Wno-trigraphs -O2 -fwrapv -Wreturn-type -Wunused-variable -fmessage-length=0 -miphoneos-version-min=4.0 -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
+ 		'LDFLAGS=\\"-arch {1} -isysroot {2}\\"'}
+ 		collect: [ :each | each format: { self architecture. sdkRoot. devRoot} ]).
- 		'CC={devRoot}/usr/bin/gcc'.
- 		'CXX={devRoot}/usr/bin/g++'.
- 		'CFLAGS=\\"-arch {architecture} -std=c99 -Wno-trigraphs -O2 -fwrapv -Wreturn-type -Wunused-variable -fmessage-length=0 -miphoneos-version-min=4.0 -I{sdkRoot}/usr/include/libxml2 -isysroot {sdkRoot}\\"'.
- 		'LDFLAGS=\\"-arch {architecture} -isysroot {sdkRoot}\\"'}
- 		collect: [ :each | each nameFormat: {
- 			'architecture'->self architecture. 
- 			'sdkRoot'->sdkRoot. 
- 			'devRoot'->devRoot} asDictionary ]).
  
  	"link plugin with freetype lib"
  	maker addExternalLibrary: '${thirdpartyDir}/out/lib/', lib libraryFileName.
  	maker includeDirectories: lib includeDir. !

Item was changed:
  ----- Method: StackIPhoneConfig>>setCommonProperties: (in category 'settings') -----
  setCommonProperties: maker 
  	maker set: 'CMAKE_CROSSCOMPILING' to: 'TRUE'.
  	maker set: 'CMAKE_SYSTEM_NAME' to: 'Darwin'.
  	maker set: 'CMAKE_SYSTEM_PROCESSOR' to: 'arm'.
  
  	maker set: 'SDKVER' toString: self sdkVersion.
+ 	maker set: 'DEVROOT' toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
+ 		format: { self targetDevice }).
- 	maker set: 'DEVROOT' toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer'
- 		nameFormat: {'target'->self targetDevice} asDictionary).
  	maker set: 'SDKROOT' toString: '${DEVROOT}/SDKs/', self targetDevice,'${SDKVER}.sdk'.
  
  	maker set: 'CMAKE_OSX_SYSROOT' to: 'iphoneos${SDKVER}'.
  		
  	maker set: 'CMAKE_FIND_ROOT_PATH' to: '"${SDKROOT}" "${DEVROOT}"'.
  	maker set: 'CMAKE_FIND_ROOT_PATH_MODE_PROGRAM' to: 'ONLY'.
  	maker set: 'CMAKE_FIND_ROOT_PATH_MODE_LIBRARY' to: 'ONLY'.
  	maker set: 'CMAKE_FIND_ROOT_PATH_MODE_INCLUDE' to: 'ONLY'.
  	
  	maker set: 'CMAKE_EXE_LINKER_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
  	maker set: 'CMAKE_C_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
  	maker set: 'CMAKE_CXX_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
  
  	maker addFrameworks: self frameworks.!

Item was changed:
  ----- Method: StackIPhoneConfig>>setExtraTargetProperties: (in category 'settings') -----
  setExtraTargetProperties: maker
  	"super setExtraTargetProperties: maker."
  
  	| precompiledHeaders plist |
  	
  	precompiledHeaders := (self executableName, '_Prefix.pch').
+ 	(FileStream forceNewFileNamed: (maker buildDir / precompiledHeaders) fullName) 
- 	(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.
+ 	(FileStream forceNewFileNamed: (maker buildDir / 'Info.plist') fullName) 
- 	(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: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR' 
  		toString: '$(BUILD_DIR)/$(CONFIGURATION)'.
  	maker set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_TEMP_DIR' 
  		toString: '$(BUILD_DIR)/$(CONFIGURATION)'.
  
+ 	maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
- 	maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir.
  	
  	maker puts: 'set_source_files_properties(${srcVMDir}/gcc3x-cointerp.c PROPERTIES COMPILE_FLAGS -O0)'
  !

Item was changed:
  ----- Method: StackIPhoneConfig>>setGlobalOptionsAfterDetermineSystem: (in category 'utils') -----
  setGlobalOptionsAfterDetermineSystem: maker
  	self setGlobalOptions: maker.	
  	maker 
  		set: 'CMAKE_OSX_SYSROOT' 
+ 		to: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk'
+ 			format: { self targetDevice. self sdkVersion })!
- 		to: ('/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer/SDKs/{target}{sdkVersion}.sdk'
- 			nameFormat: { 'target'->self targetDevice. 'sdkVersion'->self sdkVersion } asDictionary)!

Item was changed:
  ----- Method: StackSimulatorConfig>>standardIncludes (in category 'source files') -----
  standardIncludes 
+ 	^super standardIncludes, {'/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk/usr/include/'
+ 	format: { self targetDevice. self sdkVersion} }
- 	^super standardIncludes, {'/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer/SDKs/{target}{sdkVersion}.sdk/usr/include/'
- 	nameFormat: {'target'->self targetDevice. 'sdkVersion'->self sdkVersion} asDictionary}
  		 !

Item was removed:
- ----- Method: String>>nameFormat: (in category '*cmakevmmaker-extensions') -----
- nameFormat: aDictionary 
- 	"format the receiver with aDictionary 
- 	 
- 	simplest example:  
- 	'foo {name} bar' format: {'name'->value}. 
- 	"
- 	| result stream |
- 	result := String new writeStream.
- 	stream := self readStream.
- 
- 	[stream atEnd]
- 		whileFalse: [| currentChar | 
- 			currentChar := stream next.
- 			currentChar == ${
- 				ifTrue: [| expression | 
- 					expression := self getEnclosedExpressionFrom: stream.
- 					result nextPutAll: (aDictionary at: expression ifAbsent: [ 'UNDEFINED' ]) asString ]
- 				ifFalse: [
- 					currentChar == $\
- 						ifTrue: [
- 							stream atEnd
- 								ifFalse: [result nextPut: stream next]]
- 						ifFalse: [result nextPut: currentChar]]].
- 
- 	^ result contents!



More information about the Vm-dev mailing list