Esteban Lorenzano uploaded a new version of CMakeVMMaker to project VM Maker: http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.143.mcz
==================== Summary ====================
Name: CMakeVMMaker-EstebanLorenzano.143 Author: EstebanLorenzano Time: 2 January 2012, 6:57:30 pm UUID: c02654d1-ffea-4d70-9937-a5ca37943aa9 Ancestors: CMakeVMMaker-EstebanLorenzano.142, CMakeVMMaker-golubovsky.142
-working on CMakeMaker for iPhone (Still not working) -small changes
=============== Diff against CMakeVMMaker-EstebanLorenzano.142 ===============
Item was changed: + SystemOrganization addCategory: #'CMakeVMMaker-Android'! SystemOrganization addCategory: #CMakeVMMaker! SystemOrganization addCategory: #'CMakeVMMaker-Unix'! SystemOrganization addCategory: #'CMakeVMMaker-Windows'! SystemOrganization addCategory: #'CMakeVMMaker-MacOS'! SystemOrganization addCategory: #'CMakeVMMaker-IOS'! SystemOrganization addCategory: #'CMakeVMMaker-FreeBSD'!
Item was added: + CMakeVMGenerator subclass: #CMakeAndroidGenerator + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'CMakeVMMaker-Android'! + + !CMakeAndroidGenerator commentStamp: 'golubovsky 7/27/2011 22:49' prior: 0! + This class inherits from CMakeGenerator and provides the same generation facilities as its parent, but output is more adjusted to the Android NDK requirements.!
Item was added: + ----- Method: CMakeAndroidGenerator>>addDefinitions: (in category 'gmake commands') ----- + addDefinitions: aString + output + nextPutAll: ('COG_CFLAGS += ', aString); + cr + !
Item was added: + ----- Method: CMakeAndroidGenerator>>addSubdirectory: (in category 'gmake commands') ----- + addSubdirectory: aDir + + ^ self include: ('$(buildDir)/', aDir, '/', self outputFileName). + !
Item was added: + ----- Method: CMakeAndroidGenerator>>append:with: (in category 'gmake commands') ----- + append: variableName with: aValueString + + output + nextPutAll: (variableName, ' += ', aValueString); + cr + !
Item was added: + ----- Method: CMakeAndroidGenerator>>generate (in category 'code generation') ----- + generate + + "override this method to produce gmake syntax" + + output := String new writeStream. + + self printHeader. + + config setupDirectories: self. + + 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 append: #LOCAL_SRC_FILES with: self sources. + + self processInternalPlugins. + config setExtraTargetProperties: self. + + self saveFile. + !
Item was added: + ----- Method: CMakeAndroidGenerator>>generatePlugin:internal:extraRules: (in category 'plugins') ----- + generatePlugin: aPlugin internal: aBoolean extraRules: aBlock + " this method called back from plugin" + ^ CMakeAndroidPluginGenerator new + generate: aPlugin for: self internal: aBoolean extraRules: aBlock!
Item was added: + ----- Method: CMakeAndroidGenerator>>include: (in category 'gmake commands') ----- + include: aFileName + output + nextPutAll: ('include ', aFileName); + cr + !
Item was added: + ----- Method: CMakeAndroidGenerator>>includeDirectories: (in category 'gmake commands') ----- + includeDirectories: aString + output + nextPutAll: ('COG_INCLUDE_DIRS += ', aString); + cr + !
Item was added: + ----- Method: CMakeAndroidGenerator>>includeDirs (in category 'sources management') ----- + includeDirs + + ^ '-I$(crossDir)/vm -I$(srcVMDir) -I$(targetPlatform)/vm -I$(buildDir)'.!
Item was added: + ----- Method: CMakeAndroidGenerator>>outputFileName (in category 'accessing') ----- + outputFileName + "override this to set the file name to create" + ^ 'cogsources.mk'!
Item was added: + ----- Method: CMakeAndroidGenerator>>printHeader (in category 'submakefile creation') ----- + printHeader + + self puts: '# This is automatically generated file using ', self configurationName, ' on ', + Date current asString, ' ' , Time current asString. + !
Item was added: + ----- Method: CMakeAndroidGenerator>>processInternalPlugins (in category 'plugins') ----- + processInternalPlugins + + | libs | + libs := OrderedCollection new. + + config internalPlugins collect: [:each | | plugin gen | + plugin := Smalltalk at: each. + gen := plugin generateFor: self internal: true. + gen doNotGenerate ifFalse: [ + libs add: plugin moduleName. + self addSubdirectory: plugin moduleName. + ]. + ]. + + self generateExportsH: libs. + !
Item was added: + ----- Method: CMakeAndroidGenerator>>set:to: (in category 'gmake commands') ----- + set: variableName to: aValueString + + output + nextPutAll: (variableName, ' := ', aValueString); + cr + !
Item was added: + ----- Method: CMakeAndroidGenerator>>sources (in category 'accessing') ----- + sources + + self set: #coreSources to: + (self append: '$(srcVMDir)/' toAll: config coreSources). + + self set: #platformVMSources to: + (self append: '$(targetPlatform)/vm/' toAll: config platformSources). + + + self set: #crossVMSources to: + (self append: '$(crossDir)/vm/' toAll: config crossSources). + + self set: #extraSources to: config extraSources. + + ^ '$(coreSources) $(crossVMSources) $(platformVMSources) $(extraSources)'!
Item was added: + CMakePluginGenerator subclass: #CMakeAndroidPluginGenerator + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'CMakeVMMaker-Android'!
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>addCrossSources: (in category 'sources management') ----- + addCrossSources: sources + + ^ self addSources: sources prefixed: '$(pluginCross)/' + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>addDefinitions: (in category 'gmake commands') ----- + addDefinitions: aString + output + nextPutAll: ('COG_CFLAGS += ', aString); + cr + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>addSources:prefixed: (in category 'sources management') ----- + addSources: aFileNames prefixed: aPrefix + + | names | + names := aFileNames inject: '' into: [:res :each | res , aPrefix, each, ' ' ]. + self append: #LOCAL_SRC_FILES with: names. + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>addSubdirectory: (in category 'gmake commands') ----- + addSubdirectory: aDir + + ^ self include: ('$(buildDir)/', aDir, '/', self outputFileName). + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>append:with: (in category 'gmake commands') ----- + append: variableName with: aValueString + + output + nextPutAll: (variableName, ' += ', aValueString); + cr + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>generate (in category 'gmake commands') ----- + generate + + | name | + output := String new writeStream. + + name := plugin moduleName. + self printHeader. + + self + set: #pluginName to: name; + set: #pluginSrc to: '$(srcPluginsDir)/', name; + set: #pluginCross to: '$(crossDir)/plugins/', name; + set: #pluginPlatform to: '$(targetPlatform)/plugins/', name. + + self addDefinitions: '-DSQUEAK_BUILTIN_PLUGIN'. + + self addSources: { name , '.c' } prefixed: '$(pluginSrc)/'. + + self includeDirectories: '-I$(pluginSrc) -I$(pluginCross) -I$(targetPlatform)/plugins/$(pluginName)'. + + 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 ]. + + vmGen config extraPluginSettings: self. + + self saveFile.!
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>generatePlugin:internal:extraRules: (in category 'plugins') ----- + generatePlugin: aPlugin internal: aBoolean extraRules: aBlock + doNotGenerate := false. + internal := aBoolean. + plugin := aPlugin. + vmGen := CMakeAndroidGenerator. + extraRules := aBlock. + + ^ self generate!
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>include: (in category 'gmake commands') ----- + include: aFileName + output + nextPutAll: ('include ', aFileName); + cr + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>includeDirectories: (in category 'gmake commands') ----- + includeDirectories: aString + output + nextPutAll: ('COG_INCLUDE_DIRS += ', aString); + cr + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>includeDirs (in category 'sources management') ----- + includeDirs + + ^ '-I$(crossDir)/vm -I$(srcVMDir) -I$(targetPlatform)/vm -I$(buildDir)'.!
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>outputFileName (in category 'accessing') ----- + outputFileName + "override this to set the file name to create" + ^ 'cogsources.mk'!
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>printHeader (in category 'submakefile creation') ----- + printHeader + + self puts: '# This is automatically generated file using ', self configurationName, ' on ', + Date current asString, ' ' , Time current asString. + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>processInternalPlugins (in category 'plugins') ----- + processInternalPlugins + + | libs | + libs := OrderedCollection new. + + config internalPlugins collect: [:each | | plugin gen | + plugin := Smalltalk at: each. + gen := plugin generateFor: self internal: true. + gen doNotGenerate ifFalse: [ + libs add: plugin moduleName. + self addSubdirectory: plugin moduleName. + ]. + ]. + + self generateExportsH: libs. + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>set:to: (in category 'gmake commands') ----- + set: variableName to: aValueString + + output + nextPutAll: (variableName, ' := ', aValueString); + cr + !
Item was added: + ----- Method: CMakeAndroidPluginGenerator>>sources (in category 'accessing') ----- + sources + + self set: #coreSources to: + (self append: '$(srcVMDir)/' toAll: config coreSources). + + self set: #platformVMSources to: + (self append: '$(targetPlatform)/vm/' toAll: config platformSources). + + + self set: #crossVMSources to: + (self append: '$(crossDir)/vm/' toAll: config crossSources). + + self set: #extraSources to: config extraSources. + + ^ '$(coreSources) $(crossVMSources) $(platformVMSources) $(extraSources)'!
Item was added: + ----- Method: CMakeGenScripts class>>generateCogMacOS (in category 'as yet unclassified') ----- + generateCogMacOS + " generate sources for Stack Interpreter of Mac OS" + | top | + top := FileDirectory default containingDirectory. + + VMMaker + generate: CoInterpreter + to: (top / 'src') fullName + platformDir: ( top / 'platforms') fullName + excluding:#(BrokenPlugin IA32ABIPluginSimulator SlangTestPlugin TestOSAPlugin + FFIPlugin ReentrantARMFFIPlugin ReentrantFFIPlugin ReentrantPPCBEFFIPlugin). + + CogMacOSConfig generate. + + !
Item was added: + ----- Method: CMakeGenScripts class>>generateCogSources (in category 'sources generation') ----- + generateCogSources + " self generateCogSources " + + " generate sources for CoInterpreter" + + | top | + + CogRTLOpcodes initialize. + CogIA32Compiler initialize. + + top := FileDirectory default containingDirectory. + + VMMaker + generate: CoInterpreter + and: StackToRegisterMappingCogit + to: (top / 'src') fullName + platformDir: ( top / 'platforms') fullName + excluding:#(BrokenPlugin IA32ABIPluginSimulator SlangTestPlugin TestOSAPlugin + FFIPlugin ReentrantARMFFIPlugin ReentrantFFIPlugin ReentrantPPCBEFFIPlugin NewsqueakIA32ABIPlugin + NewsqueakIA32ABIPluginAttic). + !
Item was added: + ----- Method: CMakeGenScripts class>>generateCogSources: (in category 'sources generation') ----- + generateCogSources: config + " self generateCogSources " + + " generate sources for CoInterpreter" + + | top src | + + CogRTLOpcodes initialize. + CogIA32Compiler initialize. + + top := config topDir. + src := config srcDir assureExistence fullName. + + VMMaker + generate: CoInterpreter + and: StackToRegisterMappingCogit + to: src + platformDir: ( top / 'platforms') fullName + excluding:#(BrokenPlugin IA32ABIPluginSimulator SlangTestPlugin TestOSAPlugin + FFIPlugin ReentrantARMFFIPlugin ReentrantFFIPlugin ReentrantPPCBEFFIPlugin NewsqueakIA32ABIPlugin + NewsqueakIA32ABIPluginAttic). + !
Item was added: + ----- Method: CMakeGenScripts class>>generateCogSourcesEmm40 (in category 'sources generation') ----- + generateCogSourcesEmm40 + " self generateCogSourcesEmm40 " + + + " generate sources for CoInterpreter" + + | top | + + CogRTLOpcodes initialize. + CogIA32Compiler initialize. + + top := FileDirectory default containingDirectory. + + VMMaker + generate: CoInterpreter + and: StackToRegisterMappingCogit + to: (top / 'src') fullName + platformDir: ( top / 'platforms') fullName + excluding:#(BrokenPlugin IA32ABIPluginSimulator SlangTestPlugin TestOSAPlugin + FFIPlugin ReentrantARMFFIPlugin ReentrantFFIPlugin ReentrantPPCBEFFIPlugin NewsqueakIA32ABIPlugin + NewsqueakIA32ABIPluginAttic). + !
Item was added: + ----- Method: CMakeGenScripts class>>generateStackMacOS (in category 'as yet unclassified') ----- + generateStackMacOS + " generate sources for Stack Interpreter of Mac OS" + self generateStackSources. + + StackMacOSConfig generate. + + !
Item was added: + ----- Method: CMakeGenScripts class>>generateStackSources (in category 'sources generation') ----- + generateStackSources + " generate sources for Stack Interpreter of Mac OS" + | top | + top := FileDirectory default containingDirectory. + + VMMaker + generate: StackInterpreter + to: (top / 'src') fullName + platformDir: ( top / 'platforms') fullName + excluding: #(BrokenPlugin IA32ABIPluginSimulator SlangTestPlugin TestOSAPlugin + FFIPlugin ReentrantARMFFIPlugin ReentrantFFIPlugin ReentrantPPCBEFFIPlugin). + + + + !
Item was added: + ----- Method: CMakeVMGenerator>>setupMacros: (in category 'as yet unclassified') ----- + setupMacros: gen + self config cMakeMacros + ifNotNil: [ :macros | gen puts: macros ]!
Item was added: + ----- Method: CPlatformConfig>>cMakeMacros (in category 'accessing') ----- + cMakeMacros + ^nil !
Item was added: + ----- Method: CPlatformConfig>>generateStackSources (in category 'source generation') ----- + generateStackSources + " generate sources for Stack Interpreter" + + StackInterpreter initialize. + + VMMaker + generate: StackInterpreter + to: self srcDir fullName + platformDir: self platformsDir fullName + excluding: #(BrokenPlugin IA32ABIPluginSimulator SlangTestPlugin TestOSAPlugin + FFIPlugin ReentrantARMFFIPlugin ReentrantFFIPlugin ReentrantPPCBEFFIPlugin).!
Item was changed: ----- Method: CocoaIOSConfig>>CFBundleName (in category 'bundle strings') ----- CFBundleName "An application name" + ^ self executableName", ' (Cocoa) 32bits'"! - ^ self executableName, ' (Cocoa) 32bits'!
Item was changed: + ----- Method: CocoaIOSConfig>>architecture (in category 'accessing') ----- - ----- Method: CocoaIOSConfig>>architecture (in category 'settings') ----- architecture ^'i386'!
Item was changed: ----- Method: CocoaIOSConfig>>extraVMSettings: (in category 'settings') ----- extraVMSettings: maker + self architecture + ifNotNil: [ :arch | maker set: 'CMAKE_OSX_ARCHITECTURES' toString: arch ]. + self setResourceProperties: maker. - maker set: 'CMAKE_OSX_ARCHITECTURES' to: self architecture. - - maker set: 'resourceDir' toString: self resourcesDir, '/ProjectBuilder'. - maker - set: 'resources' - to: (String streamContents: [ :stream | - self resources - do: [ :each | - stream - nextPut: $"; - nextPutAll: '${resourceDir}/'; - nextPutAll: each; - nextPut: $"] - separatedBy: [ stream space ] ]). - - maker set: 'resourcesLocaleEnglish' to: - '"${resourceDir}/English.lproj/InfoPlist.strings" - "${resourceDir}/English.lproj/MainMenu.nib"' !
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 - cmd: 'set_source_files_properties' - params: '${resources} PROPERTIES MACOSX_PACKAGE_LOCATION Resources'. - - maker - cmd: 'set_source_files_properties' - params: '${resourcesLocaleEnglish} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/English.lproj'. - - - maker - cmd: 'set_source_files_properties' - params: '${ENGLISH_RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/English.lproj'. - (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 added: + ----- Method: CogFamilyCocoaIOSConfig>>setResourceProperties: (in category 'settings') ----- + setResourceProperties: maker + maker set: 'resourceDir' toString: self resourcesDir, '/ProjectBuilder'. + + maker + set: 'resources' + to: (String streamContents: [ :stream | + self resources + do: [ :each | + stream + nextPut: $"; + nextPutAll: '${resourceDir}/'; + nextPutAll: each; + nextPut: $"] + separatedBy: [ stream space ] ]). + + maker + set: 'resourcesLocaleEnglish' + to: '"${resourceDir}/English.lproj/InfoPlist.strings" "${resourceDir}/English.lproj/MainMenu.nib"'. + + maker + cmd: 'set_source_files_properties' + params: '${resources} PROPERTIES MACOSX_PACKAGE_LOCATION Resources'. + + maker + cmd: 'set_source_files_properties' + params: '${resourcesLocaleEnglish} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/English.lproj'. + + !
Item was added: + ----- Method: CogMacOSConfig>>generateSourceFiles (in category 'source files') ----- + generateSourceFiles + + ^ CMakeGenScripts generateCogSources: self!
Item was added: + ----- Method: MacOSConfig>>cMakeMacros (in category 'accessing') ----- + cMakeMacros + ^'macro(add_framework appname fwname) + find_library(FRAMEWORK_${fwname} + NAMES ${fwname} + PATHS ${CMAKE_OSX_SYSROOT}/System/Library + PATH_SUFFIXES Frameworks + NO_DEFAULT_PATH) + if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND) + message(ERROR ": Framework ${fwname} not found") + else() + include_directories(SYSTEM /System/Library/Frameworks/${fwname}.framework/Headers) + target_link_libraries(${appname} ${FRAMEWORK_${fwname}}) + endif() + endmacro(add_framework)' !
Item was changed: + StackCocoaIOSConfig subclass: #StackCocoaIOSARMConfig - StackCocoaIOSCLANGConfig subclass: #StackCocoaIOSARMConfig instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'CMakeVMMaker-IOS'!
Item was changed: + ----- Method: StackCocoaIOSARMConfig>>architecture (in category 'accessing') ----- - ----- Method: StackCocoaIOSARMConfig>>architecture (in category 'settings') ----- architecture + ^'armv6'! - ^'"armv6" "armv7"'!
Item was changed: + ----- Method: StackCocoaIOSARMConfig>>commonCompilerFlags (in category 'settings') ----- - ----- Method: StackCocoaIOSARMConfig>>commonCompilerFlags (in category 'accessing') ----- commonCompilerFlags "Common compiler flags" + ^{ + "'-miphoneos-version-min=4.3'. " + '-isysroot /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'. + '-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'. + "'-DXXXUSE_INLINE_MEMORY_ACCESSORS'." + '-DISQUEAK_IMAGE=iPhone'. + '-DISQUEAK_SOURCES=PharoV10'}! - ^#('-arch armv6' - '-arch armv7' - '-miphoneos-version-min=4.3' - '-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk' - '-x objective-c' - '-DTARGET_OS_IS_IPHONE' - '-DHAVE_UUID_GENERATE')!
Item was changed: ----- Method: StackCocoaIOSARMConfig>>compilerFlagsDebug (in category 'settings') ----- compilerFlagsDebug + ^#('-g3' '-O0' "'-fasm-blocks'" "'-mfpmath=sse'" "'-march=pentium-m'" "'-mtune=prescott'" '-fno-cse-follow-jumps' '-DDEBUGVM=1')! - ^#('-g3' '-O0' '-fvisibility=hidden' '-funroll-loops' '-fasm-blocks' '-finline-functions' '-mfpmath=sse' '-march=pentium-m' '-mtune=prescott' '-falign-functions=16' '-fno-gcse' '-fno-cse-follow-jumps' '-std=gnu99' '-DUSE_INLINE_MEMORY_ACCESSORS' '-DLSB_FIRST' '-DUSE_INLINE_MEMORY_ACCESSORS' '-DHAVE_SYS_TIME_H' '-DHAVE_NANOSLEEP' '-DDEBUGVM=1' '-DCOGMTVM=0' '-DUSE_GLOBAL_STRUCT=0' '-DBASE_HEADER_SIZE=4')!
Item was changed: ----- Method: StackCocoaIOSARMConfig>>compilerFlagsRelease (in category 'settings') ----- compilerFlagsRelease + ^#('-g0' '-Os' "'-fasm-blocks'" '-finline-functions' "'-mfpmath=sse'" '-fomit-frame-pointer' "'-march=pentium-m'" "'-mtune=prescott'" '-DNDEBUG' '-DDEBUGVM=0')! - ^#('-g0' '-Os' '-fvisibility=hidden' '-funroll-loops' '-fasm-blocks' '-finline-functions' '-mfpmath=sse' '-fomit-frame-pointer' '-march=pentium-m' '-mtune=prescott' '-falign-functions=16' '-fno-gcse' '-fno-cse-follow-jumps' '-std=gnu99' '-DUSE_INLINE_MEMORY_ACCESSORS' '-DLSB_FIRST' '-DUSE_INLINE_MEMORY_ACCESSORS' '-DHAVE_SYS_TIME_H' '-DHAVE_NANOSLEEP' '-DNDEBUG' '-DDEBUGVM=0' '-DCOGMTVM=0' '-DUSE_GLOBAL_STRUCT=0' '-DBASE_HEADER_SIZE=4')!
Item was changed: ----- Method: StackCocoaIOSARMConfig>>defaultInternalPlugins (in category 'settings') ----- defaultInternalPlugins + ^ #( - ^#() - "^ #( ADPCMCodecPlugin BMPReadWriterPlugin BalloonEnginePlugin BitBltSimulation - ClipboardExtendedPlugin DSAPlugin DeflatePlugin + "DropPlugin" - DropPlugin FFTPlugin FilePlugin FloatArrayPlugin - GeniePlugin HostWindowPlugin JPEGReadWriter2Plugin JPEGReaderPlugin LargeIntegersPlugin Matrix2x3Plugin MiscPrimitivePlugin + "RePlugin" - RePlugin SecurityPlugin + "SocketPlugin" - SocketPlugin SoundCodecPlugin SoundGenerationPlugin SoundPlugin SurfacePlugin UUIDPlugin + "IOSPlugin")! - IOSPlugin - )"!
Item was added: + ----- Method: StackCocoaIOSARMConfig>>extraPluginSettings: (in category 'plugin extra rules') ----- + extraPluginSettings: maker + self architecture + ifNotNil: [ :arch | maker set: 'CMAKE_OSX_ARCHITECTURES' toString: arch ]. + + self setCommonProperties: maker. + + maker + setTargetProperty: 'COMPILE_FLAGS' + to: '"-include "', (self buildDir / self prefixHeaderFileName) fullName, '""'. + + maker isExternal ifTrue: [ + "copy result to results dir " + maker set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir. + maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir. + maker puts: 'list(APPEND linkFlags "-undefined dynamic_lookup")' ]. + + "maker addXCodeProperty: 'GCC_VERSION' value: '4.3'." + maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/' , self executableName , '_Prefix.pch'. + + !
Item was added: + ----- Method: StackCocoaIOSARMConfig>>extraSources (in category 'source files') ----- + extraSources + " mac VM using some unix sources " + + ^'${buildDir}/', self prefixHeaderFileName, ' + ${resources} ', + '${buildDir}/', self prefixHeaderFileName, ' + ${resourcesLocaleEnglish} + ${platformsDir}/unix/vm/sqUnixHeartbeat.c + ${platformsDir}/unix/vm/sqUnixThreads.c + '!
Item was changed: ----- Method: StackCocoaIOSARMConfig>>frameworks (in category 'accessing') ----- frameworks ^ #( - "AppKit" - "Cocoa" - AudioToolbox CoreAudio CoreGraphics CoreLocation UIKit Foundation - SystemConfiguration - "ApplicationServices" QuartzCore + OpenGLES + AudioToolbox + SystemConfiguration)! - OpenGLES)!
Item was added: + ----- Method: StackCocoaIOSARMConfig>>imageResources (in category 'settings') ----- + imageResources + ^#( + 'iPhone.image' + 'iPhone.changes' + 'PharoV10.sources')!
Item was changed: ----- Method: StackCocoaIOSARMConfig>>platformSources (in category 'source files') ----- platformSources "files added from platform/iOS/vm dir " ^ #( 'Common/main.m' 'Common/Classes/Queue.m' 'Common/Classes/sqMacV2Time.c' 'Common/Classes/sqSqueakAppDelegate.m' 'Common/Classes/sqSqueakFileDirectoryAPI.m' 'Common/Classes/sqSqueakFileDirectoryInterface.m' 'Common/Classes/sqSqueakInfoPlistInterface.m' - 'Common/Classes/sqSqueakMainApp.m' 'Common/Classes/sqSqueakMainApplication.m' 'Common/Classes/sqSqueakMainApplication+attributes.m' - 'Common/Classes/sqSqueakAttributesAPI.m' 'Common/Classes/sqSqueakMainApplication+events.m' - 'Common/Classes/sqSqueakEventsAPI.m' 'Common/Classes/sqSqueakMainApplication+imageReadWrite.m' 'Common/Classes/sqSqueakMainApplication+sound.m' - 'Common/Classes/sqSqueakSoundAPI.m' 'Common/Classes/sqSqueakMainApplication+vmAndImagePath.m' - 'Common/Classes/sqSqueakVmAndImagePathAPI.m' 'Common/Classes/sqSqueakMainApplication+screen.m' + 'Common/Classes/sqSqueakMainApplication+cursor.m' + "'Common/Classes/sqSqueakCursorAPI.m'" + 'Common/Classes/sqSqueakAttributesAPI.m' + 'Common/Classes/sqSqueakSoundAPI.m' + 'Common/Classes/sqSqueakVmAndImagePathAPI.m' + 'Common/Classes/sqSqueakMainApp.m' + 'Common/Classes/sqSqueakEventsAPI.m' 'Common/Classes/sqSqueakScreenAPI.m' 'Common/Classes/sqSqueakScreenAndWindow.m' - 'Common/Classes/sqSqueakCursorAPI.m' - 'Common/Classes/sqSqueakMainApplication+cursor.m' 'iPhone/Classes/SqueakNoOGLIPhoneAppDelegate.m' 'iPhone/Classes/sqSqueakIPhoneApplication.m' 'iPhone/Classes/sqSqueakIPhoneApplication+attributes.m' 'iPhone/Classes/sqSqueakIPhoneApplication+clipboard.m' 'iPhone/Classes/sqSqueakIPhoneApplication+imageReadWrite.m' 'iPhone/Classes/sqSqueakIPhoneApplication+events.m' 'iPhone/Classes/sqSqueakIPhoneApplication+Network.m' 'iPhone/Classes/sqSqueakiPhoneApplication+sound.m' 'iPhone/Classes/sqSqueakIPhoneFileDirectoryInterface.m' 'iPhone/Classes/sqSqueakIPhoneInfoPlistInterface.m' 'iPhone/Classes/sqiPhoneScreenAndWindow.m' 'iPhone/Classes/SqueakUIView.m' 'iPhone/Classes/SqueakUIViewCALayer.m' 'iPhone/Classes/SqueakUIViewOpenGL.m' 'iPhone/Classes/SqueakUIController.m' 'iPhone/Classes/sqSqueakIPhoneClipboardAPI.m' 'iPhone/macintoshextra.c' 'iPhone/osExports.c' 'iPhone/sqDummyaio.c' 'iPhone/sqMacV2Memory.c' )!
Item was added: + ----- Method: StackCocoaIOSARMConfig>>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>BuildMachineOSBuild</key> + <string>10J869</string> + <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>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>DTCompiler</key> + <string>4.2</string> + <key>DTPlatformBuild</key> + <string>8H7</string> + <key>DTPlatformName</key> + <string>iphoneos</string> + <key>DTPlatformVersion</key> + <string>4.3</string> + <key>DTSDKBuild</key> + <string>8H7</string> + <key>DTSDKName</key> + <string>iphoneos4.3</string> + <key>DTXcode</key> + <string>0402</string> + <key>DTXcodeBuild</key> + <string>4A2002a</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>MinimumOSVersion</key> + <string>3.1.3</string> + <key>NSMainNibFile</key> + <string>MainWindow</string> + <key>UIDeviceFamily</key> + <array> + <integer>1</integer> + </array> + <key>UIPrerenderedIcon</key> + <true/> + <key>UIStatusBarHidden</key> + <true/> + </dict> + </plist> + '!
Item was added: + ----- Method: StackCocoaIOSARMConfig>>resources (in category 'settings') ----- + resources + ^#('Cog.icns'), self imageResources!
Item was added: + ----- Method: StackCocoaIOSARMConfig>>sdkVersion (in category 'accessing') ----- + sdkVersion + ^'5.0'!
Item was added: + ----- Method: StackCocoaIOSARMConfig>>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: '/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_C_COMPILER' to: '${DEVROOT}/usr/bin/llvm-gcc'. + maker set: 'CMAKE_CXX_COMPILER' to: '${DEVROOT}/usr/bin/llvm-g++'. + "maker set: 'CMAKE_C_COMPILER' to: 'gcc-4.2'. + maker set: 'CMAKE_CXX_COMPILER' to: 'g++-4.2'." + + 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: '-L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'. + + maker addFrameworks: self frameworks. + !
Item was changed: ----- Method: StackCocoaIOSARMConfig>>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. - maker set: 'CMAKE_CROSSCOMPILING' to: 'TRUE'. - maker set: 'CMAKE_SYSTEM_NAMEG' toString: 'Darwin'. - maker set: 'CMAKE_SYSTEM_PROCESSOR' toString: 'arm'.
- maker set: 'SDKVER' toString: '5.0'. - maker set: 'DEVROOT' toString: '/Developer/Platforms/iPhoneOS.platform/Developer'. - maker set: 'SDKROOT' toString: '${DEVROOT}/SDKs/iPhoneOS${SDKVER}.sdk'. - - maker include: 'CMakeForceCompiler'. - maker cmd: 'CMAKE_FORCE_C_COMPILER' params: '${DEVROOT}/usr/bin/clang CLang'. - maker cmd: 'CMAKE_FORCE_CXX_COMPILER' params: '${DEVROOT}/usr/bin/clang++ CLang'. - - maker set: 'CMAKE_FIND_ROOT_PATH' to: '"${SDKROOT}" "${DEVROOT}"'. - maker set: 'CMAKE_FIND_ROOT_PATH_MODE_PROGRAM' to: 'NEVER'. - maker set: 'CMAKE_FIND_ROOT_PATH_MODE_LIBRARY' to: 'ONLY'. - maker set: 'CMAKE_FIND_ROOT_PATH_MODE_INCLUDE' to: 'ONLY'. - - 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 - cmd: 'set_source_files_properties' - params: '${resources} PROPERTIES MACOSX_PACKAGE_LOCATION Resources'. - - maker - cmd: 'set_source_files_properties' - params: '${resourcesLocaleEnglish} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/English.lproj'. - - maker - cmd: 'set_source_files_properties' - params: '${ENGLISH_RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/English.lproj'. - - 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 added: + ----- Method: StackCocoaIOSARMConfig>>setResourceProperties: (in category 'settings') ----- + setResourceProperties: maker + maker set: 'resourceDir' toString: self resourcesDir, '/ProjectBuilder'. + + maker + set: 'resources' + to: (String streamContents: [ :stream | + self resources + do: [ :each | + stream + nextPut: $"; + nextPutAll: '${resourceDir}/'; + nextPutAll: each; + nextPut: $"] + separatedBy: [ stream space ] ]). + + maker + set: 'resourcesLocaleEnglish' + toString: '${resourceDir}/iPhone-English.lproj/MainWindow.nib'. + + maker + cmd: 'set_source_files_properties' + params: '${resources} PROPERTIES MACOSX_PACKAGE_LOCATION .'. + + maker + cmd: 'set_source_files_properties' + params: '${resourcesLocaleEnglish} PROPERTIES MACOSX_PACKAGE_LOCATION .'. + + !
Item was added: + ----- Method: StackCocoaIOSARMConfig>>standardIncludes (in category 'source files') ----- + standardIncludes + ^#( + '${srcDir}/vm' + '${platformsDir}/iOS/vm/iPhone' + '${platformsDir}/iOS/vm/iPhone/Classes' + '${platformsDir}/iOS/vm/OSX' + '${platformsDir}/unix/vm' + '${platformsDir}/iOS/vm/Common/Classes' + '${platformsDir}/iOS/plugins/SoundPlugin' + '${platformsDir}/iOS/vm/OSX/plugins/SoundPlugin' + '${crossDir}/plugins/SoundPlugin' + '${crossDir}/plugins/HostWindowPlugin' + '${platformsDir}/Cross/plugins/HostWindowPlugin' + '${platformsDir}/iOS/vm/iPhone/plugins/HostWindowPlugin' + '${crossDir}/plugins/FilePlugin' + ) + !
Item was added: + CPlatformConfig subclass: #StackEvtAndroidConfig + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'CMakeVMMaker-Android'! + + !StackEvtAndroidConfig commentStamp: 'golubovsky 7/24/2011 22:47' prior: 0! + A class to configure the Event-driven Stack Cog for Android. This configuration does not lead to building an executable; rather it prepares the source tree to be plugged into the jni subdirectory of an Android project.!
Item was added: + ----- Method: StackEvtAndroidConfig>>compilerFlags (in category 'source generation') ----- + compilerFlags + "Compiler flags for Android. Leave empty for now" + ^ ' -DDEBUG=22 '!
Item was added: + ----- Method: StackEvtAndroidConfig>>configH (in category 'source files') ----- + configH + " right now its borrowed directly from unix, but likely will change" + ^ ' + #ifndef __sq_config_h + #define __sq_config_h + + /* explicit image width */ + + #define HAVE_INTERP_H 1 + + /* package options */ + + #define USE_X11 1 + #define USE_X11_GLX 1 + /* #undef USE_QUARTZ */ + /* #undef USE_QUARTZ_CGL */ + /* #undef USE_RFB */ + + /* libraries */ + + /* #undef HAVE_LIBX11 */ + /* #undef HAVE_LIBXEXT */ + #define HAVE_LIBDL 1 + /* #undef HAVE_DYLD */ + /* #undef HAVE_LIBFFI */ + /* #undef HAVE_ICONV */ + + /* #undef USE_AUDIO_NONE */ + /* #undef USE_AUDIO_SUN */ + /* #undef USE_AUDIO_NAS */ + /* #undef USE_AUDIO_OSS */ + /* #undef USE_AUDIO_MACOSX */ + /* #undef OSS_DEVICE */ + + /* header files */ + + #define HAVE_UNISTD_H 1 + /* #undef NEED_GETHOSTNAME_P */ + + #define HAVE_DIRENT_H 1 + /* #undef HAVE_SYS_NDIR_H */ + /* #undef HAVE_SYS_DIR_H */ + /* #undef HAVE_NDIR_H */ + + #define HAVE_SYS_TIME_H 1 + #define TIME_WITH_SYS_TIME 1 + + /* #undef HAVE_SYS_FILIO_H */ + + /* #undef HAVE_SYS_AUDIOIO_H */ + /* #undef HAVE_SUN_AUDIOIO_H */ + + #define HAVE_PTY_H 1 + /* #undef HAVE_UTIL_H */ + /* #undef HAVE_LIBUTIL_H */ + #define HAVE_STROPTS_H 1 + + #define HAVE_GL_GL_H 1 + /* #undef HAVE_OPENGL_GL_H */ + + /* #undef NEED_SUNOS_H */ + + /* system calls/library functions */ + + #define AT_EXIT atexit + + #define HAVE_TZSET 1 + + #define HAVE_OPENPTY 1 + /* #undef HAVE_UNIX98_PTYS */ + + #define HAVE_SNPRINTF 1 + /* #undef HAVE___SNPRINTF */ + + #define HAVE_MMAP 1 + + /* #undef HAVE_DYLD */ + + #define HAVE_LANGINFO_CODESET 1 + + #define HAVE_ALLOCA 1 + #define HAVE_ALLOCA_H 1 + + #define HAVE_UNSETENV 1 + + #define HAVE_NANOSLEEP 1 + + /* widths of primitive types */ + + #define SIZEOF_INT 4 + #define SIZEOF_LONG 4 + #define SIZEOF_LONG_LONG 8 + #define SIZEOF_VOID_P 4 + + /* structures */ + + #define HAVE_TM_GMTOFF 1 + #define HAVE_TIMEZONE 1 + + /* typedefs */ + + /* #undef size_t */ + /* #undef socklen_t */ + + #define squeakInt64 long long + + /* architecture */ + + #define OS_TYPE "unix" + + #define VM_HOST "i686-pc-linux-gnu" + #define VM_HOST_CPU "i686" + /* #undef VM_HOST_VENDOR */ + #define VM_HOST_OS "linux-gnu" + #define VM_BUILD_STRING "Unix built on "__DATE__ " "__TIME__" Compiler: "__VERSION__ + + /* #undef WORDS_BIGENDIAN */ + /* #undef DOUBLE_WORD_ALIGNMENT */ + + /* damage containment */ + + /* #undef DARWIN */ + + #ifdef NEED_SUNOS_H + # include "sunos.h" + #endif + + /* other configured variables */ + + #define SQ_VERSION "3.9a-7024" + #define VM_VERSION "3.9-7" + #define VM_MODULE_PREFIX "" + /* #undef VM_DLSYM_PREFIX */ + #define VM_X11DIR "" + + /* avoid dependencies on glibc2.3 */ + + #define HAVE_FEATURES_H 1 + + #if defined(HAVE_FEATURES_H) + # include "glibc.h" + #endif + + + /* used by UUID plugin: */ + + #define HAVE_UUID_H 1 + + #endif /* __sq_config_h */ + + '!
Item was added: + ----- Method: StackEvtAndroidConfig>>configureFileCopyPlugin: (in category 'plugin extra rules') ----- + configureFileCopyPlugin: maker + "extra rules for DropPlugin" + + maker addPlatformSources: #( 'sqAndroidFileCopyPlugin.c') + !
Item was added: + ----- Method: StackEvtAndroidConfig>>configureFilePlugin: (in category 'plugin extra rules') ----- + configureFilePlugin: maker + "extra rules for FilePlugin" + + super configureFilePlugin: maker. + + maker addPlatformSources: #( 'sqAndroidFile.c')!
Item was added: + ----- Method: StackEvtAndroidConfig>>configureFloatMathPlugin: (in category 'plugin extra rules') ----- + configureFloatMathPlugin: maker + "extra rules for FloatMathPlugin" + + maker addCrossSources: #( + 'acos.c' 'acosh.c' 'asin.c' 'asinh.c' 'atan.c' 'atan2.c' 'atanh.c' + 'copysign.c' 'cos.c' 'cosh.c' 'exp.c' 'expm1.c' 'finite.c' 'fmod.c' + 'hypot.c' 'isnan.c' 'k_cos.c' 'k_rem_pio2.c' 'k_sin.c' 'k_tan.c' 'ldexp.c' + 'log.c' 'log10.c' 'log1p.c' 'modf.c' 'pow.c' 'rem_pio2.c' 'rint.c' + 'scalb.c' 'scalbn.c' 'sin.c' 'sinh.c' 'sqrt.c' 'tan.c' 'tanh.c' ). + + + "according to http://www.netlib.org/fdlibm/readme + it should be compiled with no optimizations" + maker addDefinitions: '-O0'. + + " compile with -D__LITTLE_ENDIAN + This macro is set automatically in fdlibm.h when compiled ith -m32 but + not when compiled with -m64 (Nicolas Cellier) + " + self isLittleEndian ifTrue: [ + maker addDefinitions: '-D__LITTLE_ENDIAN=1' ]. + + maker addDefinitions: '-DNO_ISNAN'. + + + !
Item was added: + ----- Method: StackEvtAndroidConfig>>configureJoystickTabletPlugin: (in category 'plugin extra rules') ----- + configureJoystickTabletPlugin: maker + "extra rules for JoystickTabletPlugin" + + super configureJoystickTabletPlugin: maker. + maker addPlatformSources: + #( 'sqAndroidJoystickTablet.c' ) + !
Item was added: + ----- Method: StackEvtAndroidConfig>>configureSecurityPlugin: (in category 'plugin extra rules') ----- + configureSecurityPlugin: maker + "extra rules for MIDIPlugin" + + super configureSecurityPlugin: maker. + + maker addPlatformSources: #( 'sqAndroidSecurity.c')!
Item was added: + ----- Method: StackEvtAndroidConfig>>configureSocketPlugin: (in category 'plugin extra rules') ----- + configureSocketPlugin: maker + "extra rules for SocketPlugin" + + maker addPlatformSources: #( 'sqAndroidSocket.c')!
Item was added: + ----- Method: StackEvtAndroidConfig>>coreSources (in category 'source files') ----- + coreSources + "files to include from src/vm dir" + + ^ #( + 'gcc3x-interp.c' + )!
Item was added: + ----- Method: StackEvtAndroidConfig>>crossSources (in category 'source files') ----- + crossSources + ^#( + 'sqHeapMap.c' + 'sqNamedPrims.c' + 'sqVirtualMachine.c' + )!
Item was added: + ----- Method: StackEvtAndroidConfig>>defaultExternalPlugins (in category 'plugins') ----- + defaultExternalPlugins + ^ #( + )!
Item was added: + ----- Method: StackEvtAndroidConfig>>defaultInternalPlugins (in category 'plugins') ----- + defaultInternalPlugins + " took from unixbuild/bld/plugins.int" + ^ #( + AndroidPlugin + BitBltSimulation "BitBltPlugin" + BalloonEnginePlugin "B2DPlugin" + BMPReadWriterPlugin + CroquetPlugin + DSAPlugin "DSAPrims" + FFTPlugin + FileCopyPlugin + FilePlugin + FloatArrayPlugin + FloatMathPlugin + JoystickTabletPlugin + JPEGReaderPlugin + LargeIntegersPlugin "LargeIntegers" + Matrix2x3Plugin + RePlugin + SecurityPlugin + JPEGReadWriter2Plugin + SocketPlugin + MiscPrimitivePlugin + DeflatePlugin "ZipPlugin" + )!
Item was added: + ----- Method: StackEvtAndroidConfig>>extraVMSettings: (in category 'source generation') ----- + extraVMSettings: maker + | versionC | + self generateConfigH. + + "add a generated version.c" + + versionC := 'version.c'. + + maker + puts: '$(buildDir)/',versionC, ':' ; + puts: ({Character tab}, '$(platformsDir)/android/config/verstamp ', '$(buildDir)/', versionC,' gcc'); + puts: {Character cr}; + puts: ('LOCAL_SRC_FILES += $(buildDir)/', versionC); + puts: {Character cr}. + . + !
Item was added: + ----- Method: StackEvtAndroidConfig>>fixLineEndsOf: (in category 'utils') ----- + fixLineEndsOf: string + ^ string copyReplaceAll: String cr with: String lf!
Item was added: + ----- Method: StackEvtAndroidConfig>>generate (in category 'source generation') ----- + generate + ^ CMakeAndroidGenerator generate: self + + !
Item was added: + ----- Method: StackEvtAndroidConfig>>generateConfigH (in category 'source files') ----- + generateConfigH + "will fix that later" + self write: self configH toFile: 'config.h'!
Item was added: + ----- Method: StackEvtAndroidConfig>>interpreterClass (in category 'source generation') ----- + interpreterClass + ^ StackEvtAndroidInterpreter!
Item was added: + ----- Method: StackEvtAndroidConfig>>mkFileList:baseDir: (in category 'utils') ----- + mkFileList: anArray baseDir: aDir + "answer the concatenated contents of the array interspersed with backslash-newline sequences" + ^ (anArray collect: [ :s | aDir, s]) inject: '' into: [ :s :n | s , #($), {Character cr}, n ].!
Item was added: + ----- Method: StackEvtAndroidConfig>>outputDir (in category 'directories') ----- + outputDir + + "the directory where built binaries will be stored - for now it is copied from CogFamilyUnixConfig" + ^ outputDir ifNil: [ outputDir := (self buildDir containingDirectory fullName , '/', self outputDirName) ] + !
Item was added: + ----- Method: StackEvtAndroidConfig>>platformName (in category 'source generation') ----- + platformName + ^ 'android'!
Item was added: + ----- Method: StackEvtAndroidConfig>>platformSources (in category 'source files') ----- + platformSources + "files added from platform/android/vm dir " + ^ #( + 'aio.c' + 'debug.c' + 'osExports.c' + 'sqAndroidCharConv.c' + 'sqAndroidExternalPrims.c' + 'sqAndroidEvtBeat.c' + 'sqAndroidEvtMain.c' + 'sqAndroidMemory.c' + 'sqAndroidVMProfile.c' + 'sqAndroidSemaphores.c' + 'sqAndroidSoundNull.c' + 'sqAndroidDisplay.c' + )!
Item was added: + ----- Method: StackEvtAndroidConfig>>prepareForGeneration (in category 'source generation') ----- + prepareForGeneration + + "force using LF on Macs" + CrLfFileStream defaultToLF. + + ^ self prepareForStackVMGeneration + !
Item was added: + ----- Method: StackEvtAndroidConfig>>setupDirectories: (in category 'directories') ----- + setupDirectories: gen + "same logic as the super has, but use gmake syntax instead of cmake" + | dirsInclude | + + " write the directories in separate include file" + dirsInclude := gen captureOutputDuring: [ + gen + set: #topDir to: ('$(ROOT)/', self topDir fullName); + set: #buildDir to: (self buildDir ifNil: ['$(topDir)/build'] ifNotNil: ['$(ROOT)/', self buildDir fullName] ); + set: #platformsDir to: ('$(ROOT)/', self platformsDir); + set: #srcDir to: ('$(ROOT)/', self srcDir); + set: #srcPluginsDir to: (pluginsDir ifNil: [ '$(srcDir)/plugins' ]); + set: #srcVMDir to: '$(srcDir)/vm'; + set: #platformName to: self platformName; + set: #targetPlatform to: '$(platformsDir)/$(platformName)'; + set: #crossDir to: '$(platformsDir)/Cross'; + set: #platformVMDir to: '$(targetPlatform)/vm'. + ]. + + self write: dirsInclude toFile: 'cogdirs.mk' + !
Item was added: + CogUnixConfig subclass: #StackEvtUnixConfig + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'CMakeVMMaker-Unix'! + + !StackEvtUnixConfig commentStamp: 'golubovsky 7/7/2011 22:38' prior: 0! + This is a concrete class which generates an event-driven StackVM for Unix. + + Usage: + StackEvtUnixConfig generateWithSources + + An event-driven Stack VM is an experiment to make VM return to the host process each time it asks for an event. + If there are events to process, the host resumes VM, otherwise VM does not get control until any event is available. + + Fore more information, check the class comments of all the superclasses. + !
Item was added: + ----- Method: StackEvtUnixConfig>>coreSources (in category 'as yet unclassified') ----- + coreSources + "files to include from src/vm dir" + + ^ #( + 'gcc3x-interp.c' + )!
Item was added: + ----- Method: StackEvtUnixConfig>>crossSources (in category 'as yet unclassified') ----- + crossSources + "answer the same set of source files except that sqTicker.c is dropped" + + ^ super crossSources select: [ :file | (file = 'sqTicker.c') not ]. + + !
Item was added: + ----- Method: StackEvtUnixConfig>>executableName (in category 'accessing') ----- + executableName + "the name of the VM executable" + ^ 'EventVM'.!
Item was added: + ----- Method: StackEvtUnixConfig>>interpreterClass (in category 'source generation') ----- + interpreterClass + ^ StackEvtInterpreter!
Item was added: + ----- Method: StackEvtUnixConfig>>platformSources (in category 'as yet unclassified') ----- + platformSources + "answer the same set of source files except that sqUnixMain.c is replaced with sqUnixEvtMain.c, + sqUnixHeartbeat.c is replaced with sqUnixEvtBeat.c" + + ^ super platformSources collect: [ :file | (file = 'sqUnixMain.c') + ifTrue: 'sqUnixEvtMain.c' + ifFalse: [(file = 'sqUnixHeartbeat.c') + ifTrue: 'sqUnixEvtBeat.c' + ifFalse: file] + ]. + + !
Item was added: + ----- Method: StackEvtUnixConfig>>prepareForGeneration (in category 'source generation') ----- + prepareForGeneration + + "force using LF on Macs" + CrLfFileStream defaultToLF. + + ^ self prepareForStackVMGeneration + !
Item was added: + StackEvtUnixConfig subclass: #StackEvtUnixDebugConfig + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'CMakeVMMaker-Unix'!
Item was added: + ----- Method: StackEvtUnixDebugConfig>>compilerFlags (in category 'compiler flags') ----- + compilerFlags + + ^ self commonCompilerFlags, ' ' ,self compilerFlagsDebug!
vm-dev@lists.squeakfoundation.org