VM Maker: CMakeVMMaker-EstebanLorenzano.143.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: CMakeVMMaker-EstebanLorenzano.143.mcz

commits-2
 
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">
+ <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!