Esteban Lorenzano uploaded a new version of CMakeVMMaker to project VM Maker: http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.182.mcz
==================== Summary ====================
Name: CMakeVMMaker-EstebanLorenzano.182 Author: EstebanLorenzano Time: 23 October 2012, 6:42:53.927 pm UUID: 7eb37e28-9f77-4c1b-9264-ef66ac71a9c8 Ancestors: CMakeVMMaker-IgorStasenko.181
- added StackSimulatorConfig, runs iStackVM in simulator (thanks Nick!) - Added Info.plist properties for managing memory and other options -- added options for Web Mode too
=============== Diff against CMakeVMMaker-IgorStasenko.181 ===============
Item was added: + ----- Method: StackIPhoneConfig>>ImageIsScrollable (in category 'bundle strings') ----- + ImageIsScrollable + ^false!
Item was added: + ----- Method: StackIPhoneConfig>>ImageIsWritable (in category 'bundle strings') ----- + ImageIsWritable + ^true!
Item was added: + ----- Method: StackIPhoneConfig>>VMMemorySize (in category 'bundle strings') ----- + VMMemorySize + ^1024 * 1024 * 64 "64M"!
Item was added: + ----- Method: StackIPhoneConfig>>WebViewAsUI (in category 'bundle strings') ----- + WebViewAsUI + ^false!
Item was added: + ----- Method: StackIPhoneConfig>>WebViewUrl (in category 'bundle strings') ----- + WebViewUrl + ^'http://localhost:8080%27!
Item was changed: ----- Method: StackIPhoneConfig>>architecture (in category 'accessing') ----- architecture + ^'armv7'! - ^'armv6'!
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/{target}.platform/Developer/SDKs/{target}{sdkVersion}.sdk' nameFormat: { 'target'-> self targetDevice. 'sdkVersion'->self sdkVersion} asDictionary. - '-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS', self sdkVersion, '.sdk'. '-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'}! - '-DISQUEAK_SOURCES=PharoV10'}!
Item was changed: ----- Method: StackIPhoneConfig>>compilerFlagsRelease (in category 'settings') ----- compilerFlagsRelease + ^#('-g0' '-O3' '-fomit-frame-pointer' '-DNDEBUG' '-DDEBUGVM=0')! - ^#('-g0' '-O3' '-fomit-frame-pointer' '-DNDEBUG' '-DDEBUGVM=0' '-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 | "maker isExternal ifFalse: [ self error: 'building internal FT2Plugin is not supported yet' ]."
+ devRoot := '/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer' + nameFormat: { 'target'->self targetDevice} asDictionary. - devRoot := '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer'. sdkRoot := '{devRoot}/SDKs/iPhoneOS{sdkVersion}.sdk' nameFormat: {'devRoot'->devRoot. '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={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 ]). - 'CFLAGS=\"-arch armv6 -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 armv6 -isysroot {sdkRoot}\"'} - collect: [ :each | each nameFormat: {'sdkRoot'->sdkRoot. 'devRoot'->devRoot} asDictionary ]).
"maker set: 'XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR' toString: ''."
"link plugin with freetype lib" maker addExternalLibrary: '${thirdpartyDir}/out/lib/', lib libraryFileName. maker includeDirectories: lib includeDir. !
Item was changed: ----- Method: StackIPhoneConfig>>plistKeys (in category 'bundle strings') ----- plistKeys ^super plistKeys, #(CFBundleIconFile57 CFBundleIconFile72 CFBundleIconFile1024 UIDeviceFamily + UIFileSharingEnabled + VMMemorySize + ImageIsWritable + ImageIsScrollable + WebViewAsUI + WebViewUrl) - UIFileSharingEnabled) !
Item was changed: ----- Method: StackIPhoneConfig>>plistTemplate (in category 'bundle strings') ----- plistTemplate self flag: #todo. "CFBundleDisplayName is using @CFBundleExecutable@ that's probably wrong" ^'<?xml version="1.0" encoding="UTF-8"?> <!!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd%22%3E <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleDisplayName</key> <string>@CFBundleExecutable@</string> <key>CFBundleExecutable</key> <string>@CFBundleExecutable@</string> <key>CFBundleIconFile</key> <string>@CFBundleIconFile@</string> <key>CFBundleIconFiles</key> <array> <string>@CFBundleIconFile@</string> <string>@CFBundleIconFile57@</string> <string>@CFBundleIconFile72@</string> <string>@CFBundleIconFile1024@</string> </array> <key>CFBundleIdentifier</key> <string>@CFBundleIdentifier@</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>@CFBundleName@</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleResourceSpecification</key> <string>ResourceRules.plist</string> <key>CFBundleSignature</key> <string>FRAC</string> <key>CFBundleSupportedPlatforms</key> <array> <string>iPhoneOS</string> </array> <key>CFBundleVersion</key> <string>1.1.7</string> <key>LSRequiresIPhoneOS</key> <true/> <key>MinimumOSVersion</key> <string>3.1.3</string> <key>NSMainNibFile</key> <string>MainWindow</string> <key>UIDeviceFamily</key> <array> @UIDeviceFamily@ </array> <key>UIPrerenderedIcon</key> <false/> <key>UIStatusBarHidden</key> <true/> <key>UIFileSharingEnabled</key> + <@UIFileSharingEnabled@/> + <key>ImageIsWritable</key> + <@ImageIsWritable@/> + <key>ImageIsScrollable</key> + <@ImageIsScrollable@/> + <key>VMMemorySize</key> + <integer>@VMMemorySize@</integer> + <key>WebViewAsUI</key> + <@WebViewAsUI@/> + <key>WebViewUrl</key> + <string>@WebViewUrl@</string> - <@UIFileSharingEnabled@/> </dict> </plist> '!
Item was changed: ----- Method: StackIPhoneConfig>>sdkVersion (in category 'accessing') ----- sdkVersion + ^'6.0'! - ^'5.1'!
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/{target}.platform/Developer' + nameFormat: {'target'->self targetDevice} asDictionary). + maker set: 'SDKROOT' toString: '${DEVROOT}/SDKs/', self targetDevice,'${SDKVER}.sdk'. - maker set: 'DEVROOT' toString: '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer'. - maker set: 'SDKROOT' toString: '${DEVROOT}/SDKs/iPhoneOS${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>>setGlobalOptions: (in category 'settings') ----- setGlobalOptions: maker "set any CMake global options, before declaring a project in cmake file" maker set: 'CMAKE_C_COMPILER' + to: ('/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer/usr/bin/gcc' + nameFormat: {'target' -> self targetDevice} asDictionary). - to: '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc'. maker set: 'CMAKE_CXX_COMPILER' + to: ('/Applications/Xcode.app/Contents/Developer/Platforms/{target}.platform/Developer/usr/bin/g++' + nameFormat: {'target' -> self targetDevice } asDictionary). + self architecture ifNotNil: [ + maker set: 'CMAKE_OSX_ARCHITECTURES' to: self architecture ]. - to: '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++'. - maker set: 'CMAKE_OSX_ARCHITECTURES' to: 'arm6'. maker set: 'CMAKE_OSX_SYSROOT' to: '/'. !
Item was added: + ----- Method: StackIPhoneConfig>>targetDevice (in category 'accessing') ----- + targetDevice + ^'iPhoneOS'!
Item was added: + StackIPhoneConfig subclass: #StackSimulatorConfig + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'CMakeVMMaker-IOS'!
Item was added: + ----- Method: StackSimulatorConfig>>architecture (in category 'accessing') ----- + architecture + ^'i386'!
Item was added: + ----- Method: StackSimulatorConfig>>executableName (in category 'accessing') ----- + executableName + ^'iStackVMSimulator'!
Item was added: + ----- Method: StackSimulatorConfig>>standardIncludes (in category 'source files') ----- + standardIncludes + ^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 added: + ----- Method: StackSimulatorConfig>>targetDevice (in category 'accessing') ----- + targetDevice + ^'iPhoneSimulator'!
vm-dev@lists.squeakfoundation.org