[Vm-dev] VM Maker: CMakeVMMaker-nice.283.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Mar 10 20:59:37 UTC 2016
Nicolas Cellier uploaded a new version of CMakeVMMaker to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMaker-nice.283.mcz
==================== Summary ====================
Name: CMakeVMMaker-nice.283
Author: nice
Time: 10 March 2016, 9:58:43.064 pm
UUID: 638cfa96-bb41-4224-8aa4-c738240e89ad
Ancestors: CMakeVMMaker-tty.215, CMakeVMMaker-jeanbaptistearnaud.282
merge CMakeVMMaker-tty.215:
Modified class comment in CPlatformConfig to refer to the correct repository on github instead of gittorious
=============== Diff against CMakeVMMaker-tty.215 ===============
Item was changed:
SystemOrganization addCategory: #CMakeVMMaker!
+ SystemOrganization addCategory: #'CMakeVMMaker-Android'!
+ SystemOrganization addCategory: #'CMakeVMMaker-Builder'!
+ SystemOrganization addCategory: #'CMakeVMMaker-FreeBSD'!
+ SystemOrganization addCategory: #'CMakeVMMaker-IOS'!
+ SystemOrganization addCategory: #'CMakeVMMaker-Libs'!
+ SystemOrganization addCategory: #'CMakeVMMaker-MacOS'!
+ SystemOrganization addCategory: #'CMakeVMMaker-Unix'!
+ SystemOrganization addCategory: #'CMakeVMMaker-Windows'!
- SystemOrganization addCategory: 'CMakeVMMaker-Android'!
- SystemOrganization addCategory: 'CMakeVMMaker-FreeBSD'!
- SystemOrganization addCategory: 'CMakeVMMaker-IOS'!
- SystemOrganization addCategory: 'CMakeVMMaker-Libs'!
- SystemOrganization addCategory: 'CMakeVMMaker-MacOS'!
- SystemOrganization addCategory: 'CMakeVMMaker-Unix'!
- SystemOrganization addCategory: 'CMakeVMMaker-Windows'!
Item was changed:
----- Method: CMIOSFreetype2>>defineGlobalTargets (in category 'generating actions') -----
defineGlobalTargets
| var |
var := self canonicalName , '_LIB'.
vmGen set: var toString: self libraryFileName.
"
define a library as imported one
and make it depend from it's build target
"
+
vmGen
puts:
+ ('add_library("\{{1}\}" STATIC IMPORTED GLOBAL)
+ set_target_properties("\{{1}\}" PROPERTIES IMPORTED_LOCATION "\{{1}\}")
+ add_dependencies("\{{1}\}" "{2}")
+ ' format: { var. self buildTarget }
- ('add_library("{1}" STATIC IMPORTED GLOBAL)
- set_target_properties("{1}" PROPERTIES IMPORTED_LOCATION "{1}")
- add_dependencies("{1}" "{2}")
- ' format: { '${',var, '}' . self buildTarget }
).
vmGen cmd: 'add_dependencies' params:
vmGen moduleName , ' ' , self buildTarget!
Item was changed:
----- Method: CMIOSFreetype2>>includeDir (in category 'accessing') -----
includeDir
"see setVariables"
" `<prefix>/include/freetype2' must be in your current inclusion path "
-
^ '"${thirdpartyDir}/freetype2/freetype-2.4.9/include"'!
Item was changed:
----- Method: CMPkgConfig>>build (in category 'generating actions') -----
build
gen
puts: '
add_custom_command(OUTPUT "${pkgConfigBinary}"
+ COMMAND ./configure --prefix=''${installPrefix}'' CFLAGS=''-std=gnu89 -arch i386'' LDFLAGS=''-arch i386''
- COMMAND ./configure --prefix=''${installPrefix}'' CFLAGS=''-arch i386'' LDFLAGS=''-arch i386''
COMMAND make
COMMAND make install
WORKING_DIRECTORY "${libSourcesDir}"
DEPENDS "${unpackTarget}"
COMMENT "Building ${libName}"
)
'
!
Item was changed:
+ ----- Method: CMThirdpartyLibrary>>archiveFileName (in category 'accessing') -----
- ----- Method: CMThirdpartyLibrary>>archiveFileName (in category 'as yet unclassified') -----
archiveFileName
^ self downloadURL asUrl fileName !
Item was changed:
----- Method: CMThirdpartyLibrary>>defaultConfigurationFlags (in category 'settings') -----
defaultConfigurationFlags
^#(
+ 'CFLAGS=''-arch i386'''
- 'CFLAGS=''-arch i386'''
'LDFLAGS=''-arch i386''')!
Item was changed:
----- Method: CMakeGenerator>>addExternalLibrary: (in category 'cmake commands') -----
addExternalLibrary: aLibrary
-
self cmd: 'list'
params: 'APPEND LINKLIBS ' , aLibrary .
" self cmd: 'target_link_libraries'
params: self moduleName , ' ' , aLibrary.
"
!
Item was changed:
----- Method: CMakeGenerator>>linkDirectories: (in category 'cmake commands') -----
linkDirectories: aString
^ self cmd: 'link_directories' params: aString!
Item was changed:
CMakeGenerator subclass: #CMakePluginGenerator
+ instanceVariableNames: 'plugin vmGen internal extraRules doNotGenerate externalDependencies'
- instanceVariableNames: 'plugin vmGen internal extraRules doNotGenerate'
classVariableNames: ''
poolDictionaries: ''
category: 'CMakeVMMaker'!
!CMakePluginGenerator commentStamp: 'Igor.Stasenko 12/25/2010 04:21' prior: 0!
I am using for generating CMakeLists.txt (cmake config files) for specific plugin.
The direct use of my instances is not recommended.
Use CMakeVMGenerator and appropriate configuration to generate both VM and plugins cmake config files.!
Item was changed:
+ ----- Method: CMakePluginGenerator>>addCrossSources: (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>addCrossSources: (in category 'as yet unclassified') -----
addCrossSources: sources
^ self addSources: sources prefixed: '${pluginCross}/'
!
Item was added:
+ ----- Method: CMakePluginGenerator>>addExternalDependency: (in category 'accessing') -----
+ addExternalDependency: aString
+ "We need to collect external dependencies to internal plugins because we need to force its
+ resolve before, and if we just add teh dependency in executable some times is not enough.
+ check StackIPhoneConfig>>#configureFT2Plugin: as an example"
+ externalDependencies := externalDependencies copyWith: aString.!
Item was changed:
+ ----- Method: CMakePluginGenerator>>addExternalLibrary: (in category 'cmake commands') -----
- ----- Method: CMakePluginGenerator>>addExternalLibrary: (in category 'as yet unclassified') -----
addExternalLibrary: aLibrary
+ self isInternal
+ ifTrue: [ vmGen addExternalLibrary: aLibrary ]
+ ifFalse: [ super addExternalLibrary: aLibrary ].!
-
- self isInternal ifTrue: [
- vmGen addExternalLibrary: aLibrary
- ]
- ifFalse: [ super addExternalLibrary: aLibrary ]
- !
Item was changed:
+ ----- Method: CMakePluginGenerator>>addPlatformSources: (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>addPlatformSources: (in category 'as yet unclassified') -----
addPlatformSources: sources
^ self addSources: sources prefixed: '${pluginPlatform}/'
!
Item was changed:
+ ----- Method: CMakePluginGenerator>>config (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>config (in category 'as yet unclassified') -----
config
^ vmGen config!
Item was changed:
+ ----- Method: CMakePluginGenerator>>configurationName (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>configurationName (in category 'as yet unclassified') -----
configurationName
^ vmGen configurationName!
Item was added:
+ ----- Method: CMakePluginGenerator>>externalDependencies (in category 'accessing') -----
+ externalDependencies
+ ^ externalDependencies!
Item was changed:
+ ----- Method: CMakePluginGenerator>>generate:for:internal:extraRules: (in category 'code generation') -----
- ----- Method: CMakePluginGenerator>>generate:for:internal:extraRules: (in category 'as yet unclassified') -----
generate: aPlugin for: aCMakeVMGenerator internal: aBoolean extraRules: aBlock
doNotGenerate := false.
internal := aBoolean.
plugin := aPlugin.
vmGen := aCMakeVMGenerator.
extraRules := aBlock.
^ self generate!
Item was added:
+ ----- Method: CMakePluginGenerator>>initialize (in category 'initialization') -----
+ initialize
+ super initialize.
+ externalDependencies := #().!
Item was changed:
+ ----- Method: CMakePluginGenerator>>saveFile (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>saveFile (in category 'as yet unclassified') -----
saveFile
| reference |
reference := ((vmGen config dirFrom: vmGen buildDir) / plugin moduleName) ensureDirectory; yourself.
(FileStream forceNewFileNamed: (reference / self outputFileName) fullName)
nextPutAll: (self config fixLineEndsOf: output contents);
close.!
Item was changed:
+ ----- Method: CMakeVMGenerator>>configurationName (in category 'accessing') -----
- ----- Method: CMakeVMGenerator>>configurationName (in category 'as yet unclassified') -----
configurationName
^ config class name!
Item was changed:
----- Method: CMakeVMGenerator>>generate (in category 'code generation') -----
generate
| intPlugins extPlugins |
output := String new writeStream.
config setGlobalOptions: self.
self
printHeader;
project: config executableName.
config setGlobalOptionsAfterDetermineSystem: self.
config setupDirectories: self.
self message: '${CMAKE_MODULE_PATH}'.
self set: 'CMAKE_CONFIGURATION_TYPES' to: 'Release'.
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 puts: 'add_executable(' , config executableName, ' ', config executableType, ' ' , self sources , ')'.
intPlugins := self generatePluginConfigs: config internalPlugins internal: true.
extPlugins := self generatePluginConfigs: config externalPlugins internal: false.
+
-
self processThirdpartyLibraries.
self processPlugins: intPlugins, extPlugins.
config setExtraTargetProperties: self.
self cmd: 'target_link_libraries'
params: self moduleName , ' ${LINKLIBS}'.
config postBuildActions: self.
self saveFile.
self generateBuildScript.!
Item was changed:
+ ----- Method: CMakeVMGenerator>>generatePlugin:internal:extraRules: (in category 'plugins') -----
- ----- Method: CMakeVMGenerator>>generatePlugin:internal:extraRules: (in category 'as yet unclassified') -----
generatePlugin: aPlugin internal: aBoolean extraRules: aBlock
" this method called back from plugin"
^ CMakePluginGenerator new
generate: aPlugin for: self internal: aBoolean extraRules: aBlock!
Item was changed:
+ ----- Method: CMakeVMGenerator>>includeDirs (in category 'sources management') -----
- ----- Method: CMakeVMGenerator>>includeDirs (in category 'as yet unclassified') -----
includeDirs
^ '${crossDir}/vm ${srcVMDir} ${targetPlatform}/vm ${buildDir}'.!
Item was changed:
----- Method: CMakeVMGenerator>>processPlugins: (in category 'processing plugins') -----
processPlugins: pluginGenerators
+ | libs libDeps |
- | libs |
libs := OrderedCollection new.
+ libDeps := Dictionary new.
-
pluginGenerators do: [:gen |
gen doNotGenerate ifFalse: [
+ gen isInternal
+ ifTrue: [
+ libs add: gen plugin moduleName ]
+ ifFalse: [
+ "make main module to depend on external plugin, just to make sure it is built
+ before main module built"
+ self
+ cmd: 'add_dependencies'
+ params: config executableName, ' ' , gen plugin moduleName ].
+ gen externalDependencies
+ ifNotEmpty: [ :deps |
+ libDeps
+ at: gen plugin moduleName
+ put: (deps fold: [ :a :b | a, ' ', b ]) ].
+ self addSubdirectory: gen plugin moduleName ] ].
- gen isInternal ifTrue: [
- libs add: gen plugin moduleName ]
- ifFalse: [
- "make main module to depend on external plugin, just to make sure it is built before main module built"
- self cmd: 'add_dependencies' params: config executableName, ' ' , gen plugin moduleName
- ].
- self addSubdirectory: gen plugin moduleName.
- ].
- ].
self cmd: 'target_link_libraries' params: config executableName , ' ' ,
+ (libs inject: '' into: [:res :ea | res, ' ' , ea ]).
- (libs inject: '' into: [:res :ea | res, ' ' , ea ]) .
+ libDeps keysAndValuesDo: [ :moduleName :dependencies |
+ self
+ cmd: 'add_dependencies'
+ params: moduleName, ' ', dependencies ].
+
+ self generateExportsH: libs.!
- self generateExportsH: libs.
- !
Item was changed:
+ ----- Method: CMakeVMGenerator>>saveFile (in category 'accessing') -----
- ----- Method: CMakeVMGenerator>>saveFile (in category 'as yet unclassified') -----
saveFile
config write: output contents toFile: (self outputFileName).
!
Item was changed:
Object subclass: #CPlatformConfig
+ instanceVariableNames: 'topDir buildDir srcDir platformsDir outputDir internalPlugins externalPlugins pluginsDir externalLibs thirdpartyLibs generateForRelease'
- instanceVariableNames: 'topDir buildDir srcDir platformsDir outputDir internalPlugins externalPlugins pluginsDir externalLibs thirdpartyLibs'
classVariableNames: ''
poolDictionaries: ''
category: 'CMakeVMMaker'!
!CPlatformConfig commentStamp: 'tty 4/23/2014 16:30' prior: 0!
Base class, defining some common properties and behavior for all kinds of VM build configurations. These classes are used to generate the VM sources and the CMMake files.
Notice that this configuration classes expect that you have download the "platofroms code" which is hosted here:
https://github.com/pharo-project/pharo-vm.
You can clone it using this command: git clone https://github.com/pharo-project/pharo-vm
Once that is done it should have created a directory /blessed. In order to get all the directories by default, place this image under /blessed/image
To generate a sources/build configuration use one of my subclasses with:
<config> generate. - to generate a build configuration
<config> generateWithSources - to generate VMMaker sources and then build configuration.
Once you do that, go to /blessed/build and execute: cmake . or cmake -G"MSYS Makefiles" if you are in Windows
Since some plugins require extra settings (like additional source files etc), there is two ways to add that:
- add custom rules on plugin class side:
PluginClass>>generateFor: aCMakeVMGenerator internal: aBoolean
^ aCMakeVMGenerator
generatePlugin: self
internal: aBoolean
extraRules: [:maker | ... your rules come here ... ]
- define rules by adding #configure<PluginClass>: method in config class (see my 'plugin extra rules' category)
The last one is more compact and also avoids inter-package dependency, so you can load and use
CMakeVMMaker even if some 3rd-party plugins are not loaded into image.
Links of interest:
Official Cog Website: http://www.mirandabanda.org/cog
Official Cog Blog: http://www.mirandabanda.org/cogblog
Cog issue tracker: http://code.google.com/p/cog
Cog Wiki: http://code.google.com/p/cog/w/list
Cog binaries: http://www.mirandabanda.org/files/Cog/VM
Cog binaries in Pharo Hudson server: https://pharo-ic.lille.inria.fr/hudson/view/Cog
Cog SVN branch: http://squeakvm.org/svn/squeak/branches/Cog
VM mailing list: http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
VM-beginners mailing list: http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
Guide step by step about how to build the Cog VM using CMakeVMMaker and Git: http://code.google.com/p/cog/wiki/Guide
!
Item was added:
+ ----- Method: CPlatformConfig>>addThirdpartyLibraries: (in category 'thirdparty libs') -----
+ addThirdpartyLibraries: aCollection
+ aCollection do: [ :each | self addThirdpartyLibrary: each ]!
Item was changed:
----- Method: CPlatformConfig>>addThirdpartyLibrary: (in category 'thirdparty libs') -----
addThirdpartyLibrary: libName
| libs lib |
libs := self thirdpartyLibs.
lib := libs
detect: [:each | each canonicalName = libName ]
ifNone: [ nil ].
lib ifNil: [
+ lib := CMThirdpartyLibrary named: libName config: self.
+ "add dependencies first, so thirpartyLibs collection will be naturally dependency sorted"
+ lib dependencies do: [:dep | self addThirdpartyLibrary: dep ].
+ libs add: lib ].
- lib := (CMThirdpartyLibrary named: libName config: self).
- "add dependencies first, so thirpartyLibs collection will be naturally dependency sorted"
- lib dependencies do: [:dep | self addThirdpartyLibrary: dep ].
- libs add: lib ].
^ lib!
Item was changed:
----- Method: CPlatformConfig>>buildScript (in category 'build script') -----
buildScript
"answer the build script for building everything"
^
+ '#!!/usr/bin/env bash
- '#!!bash
cmake .
make
'!
Item was added:
+ ----- Method: CPlatformConfig>>commonCompilerFlags (in category 'compiler flags') -----
+ commonCompilerFlags
+ ^ #()!
Item was added:
+ ----- Method: CPlatformConfig>>compilerFlags (in category 'compiler flags') -----
+ compilerFlags
+ | releaseFlags |
+
+ releaseFlags := self isGenerateForRelease
+ ifTrue: [ self compilerFlagsRelease ]
+ ifFalse: [ self compilerFlagsDebug ].
+
+ ^ String streamContents: [ :stream |
+ ((self commonCompilerFlags, releaseFlags) collect: #trimBoth as: Set)
+ asStringOn: stream
+ delimiter: ' ' ]!
Item was added:
+ ----- Method: CPlatformConfig>>compilerFlagsDebug (in category 'compiler flags') -----
+ compilerFlagsDebug
+ ^ #()!
Item was added:
+ ----- Method: CPlatformConfig>>compilerFlagsRelease (in category 'compiler flags') -----
+ compilerFlagsRelease
+ ^ #()!
Item was added:
+ ----- Method: CPlatformConfig>>generateForDebug (in category 'accessing') -----
+ generateForDebug
+ generateForRelease := false!
Item was added:
+ ----- Method: CPlatformConfig>>generateForRelease (in category 'accessing') -----
+ generateForRelease
+ generateForRelease := true!
Item was added:
+ ----- Method: CPlatformConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ super initialize.
+ generateForRelease := true.!
Item was added:
+ ----- Method: CPlatformConfig>>isGenerateForRelease (in category 'testing') -----
+ isGenerateForRelease
+ ^generateForRelease!
Item was changed:
MacOSConfig subclass: #CocoaIOSConfig
+ instanceVariableNames: ''
- instanceVariableNames: 'generateForRelease'
classVariableNames: ''
poolDictionaries: ''
category: 'CMakeVMMaker-IOS'!
!CocoaIOSConfig commentStamp: 'MarianoMartinezPeck 4/24/2011 15:34' prior: 0!
This is an abstract class for all Mac Cocoa configurations. It is intended to share code between different concrete implementations.
Fore more information, check the class comments of all the superclasses.
!
Item was removed:
- ----- Method: CocoaIOSConfig>>compilerFlags (in category 'accessing') -----
- compilerFlags
- | releaseFlags |
-
- releaseFlags := self isGenerateForRelease
- ifTrue: [ self compilerFlagsRelease ]
- ifFalse: [ self compilerFlagsDebug ].
-
- ^String streamContents: [ :stream |
- (self commonCompilerFlags, releaseFlags) asSet
- do: [ :each | stream nextPutAll: each ]
- separatedBy: [ stream space ] ]!
Item was changed:
----- Method: CocoaIOSConfig>>compilerFlagsRelease (in category 'accessing') -----
compilerFlagsRelease
^#(
"'-fobjc-direct-dispatch'"
'-msse3'
"'-msse4.1'"
"'-msse4.2'"
"'-mdynamic-no-pic'"
"'-fwritable-strings'"
'-Os'
+ '-fvisibility=default'
- '-fvisibility=hidden'
'-funroll-loops'
"'-fno-asm'"
'-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'
'-DBUILD_FOR_OSX'
"'-DUSE_INLINE_MEMORY_ACCESSORS'"
'-DLSB_FIRST'
'-DUSE_INLINE_MEMORY_ACCESSORS'
'-DHAVE_SYS_TIME_H'
'-DHAVE_NANOSLEEP'
'-DICC_DEBUG=0'
'-DICC_OPTLEVEL="speedHLO"'
'-DICC_OPT_IPO_FOR_SINGLE_FILE_COMPILATION=1'
'-DICC_OPT_PARALLEL=0'
'-DICC_OPT_PREFETCH_INSERTION=1'
'-DICC_OPT_PROVIDE_FRAME_PTR=0'
'-DICC_OPT_USE_ARCH_IA32="SSE42"')!
Item was added:
+ ----- Method: CocoaIOSConfig>>configureMIDIPlugin: (in category 'plugin extra rules') -----
+ configureMIDIPlugin: maker
+ "extra rules for MIDIPlugin"
+
+ maker addPlatformSources: #( 'sqMacMIDI.m')!
Item was changed:
----- Method: CocoaIOSConfig>>frameworks (in category 'accessing') -----
frameworks
^ #(
Cocoa
Foundation
AudioToolbox
CoreAudio
SystemConfiguration
ApplicationServices
QuartzCore
OpenGL
+ AGL
+ QuickTime)!
- AGL)!
Item was removed:
- ----- Method: CocoaIOSConfig>>generateForDebug (in category 'accessing') -----
- generateForDebug
- generateForRelease := false!
Item was removed:
- ----- Method: CocoaIOSConfig>>generateForRelease (in category 'accessing') -----
- generateForRelease
- generateForRelease := true!
Item was removed:
- ----- Method: CocoaIOSConfig>>initialize (in category 'initialization') -----
- initialize
- super initialize.
- self generateForRelease!
Item was removed:
- ----- Method: CocoaIOSConfig>>isGenerateForRelease (in category 'testing') -----
- isGenerateForRelease
- ^generateForRelease!
Item was changed:
----- Method: CocoaIOSConfig>>setExtraTargetProperties: (in category 'settings') -----
setExtraTargetProperties: maker
| plist precompiledHeaders |
" 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'.
precompiledHeaders := (self executableName, '_Prefix.pch').
(maker buildDir forceNewFileNamed: precompiledHeaders)
nextPutAll: self precompiledHeaders;
close.
maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', precompiledHeaders.
"maker
addXCodeProperty: 'GCC_ENABLE_SSE3_EXTENSIONS' value: 'YES';
addXCodeProperty: 'GCC_ENABLE_SSE41_EXTENSIONS' value: 'YES';
addXCodeProperty: 'GCC_ENABLE_SSE42_EXTENSIONS' value: 'YES';
addXCodeProperty: 'GCC_GENERATE_DEBUGGING_SYMBOLS' value: 'NO';
addXCodeProperty: 'GCC_INLINES_ARE_PRIVATE_EXTERN' value: 'YES';
addXCodeProperty: 'GCC_UNROLL_LOOPS' value: 'YES'. "
"Extras"
maker
addXCodeProperty: 'ICC_DEBUG' value: 'NO';
addXCodeProperty: 'ICC_OPTLEVEL' value: 'speedHLO';
addXCodeProperty: 'ICC_OPT_IPO_FOR_SINGLE_FILE_COMPILATION' value: 'YES';
addXCodeProperty: 'ICC_OPT_PARALLEL' value: 'NO';
addXCodeProperty: 'ICC_OPT_PREFETCH_INSERTION' value: 'YES';
addXCodeProperty: 'ICC_OPT_PROVIDE_FRAME_PTR' value: 'NO';
addXCodeProperty: 'ICC_OPT_USE_ARCH_IA32' value: 'SSE41';
+ addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-finline-functions -mfpmath=sse -march=pentium-m -mtune=prescott -falign-functions=16 -fno-gcse -DLSB_FIRST';
- addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-finline-functions -mfpmath=sse -march=pentium-m -mtune=prescott -falign-functions=16 -fno-gcse -fno-cse-follow-jumps -DLSB_FIRST';
addXCodeProperty: 'PER_ARCH_CFLAGS_ppc' value: '-fast -mtune=7450 -mcpu=7450 -D_BSD_SOCKLEN_T_=int'!
Item was changed:
----- Method: CogFamilyCocoaIOSConfig>>commonCompilerFlags (in category 'settings') -----
commonCompilerFlags
+ ^super commonCompilerFlags, #(
+ "CLANG >>"
+ '-fwrapv' "Non optimization of stackoverflow (to allow number conversions)"
+ '-Wno-return-type' "to avoid clang to complain about plugins that do not return properly."
+ '-Qunused-arguments'
+ "CLANG <<"
- ^super commonCompilerFlags,
- #(
'-funroll-loops'
'-fasm-blocks'
'-fno-inline-functions'
'-mfpmath=sse'
'-march=pentium-m'
'-mtune=prescott'
'-falign-functions=16'
'-fno-gcse'
- '-fno-cse-follow-jumps'
'-std=gnu99'
'-fmessage-length=0'
'-fpascal-strings'
'-DBUILD_FOR_OSX'
"'-DUSE_INLINE_MEMORY_ACCESSORS=1' "
'-DLSB_FIRST'
'-DHAVE_SYS_TIME_H'
'-DHAVE_NANOSLEEP'
'-DCOGMTVM=0'
'-DUSE_GLOBAL_STRUCT=0'
'-DBASE_HEADER_SIZE=4'
'-DENABLE_FAST_BLT')!
Item was changed:
----- Method: CogFamilyCocoaIOSConfig>>defaultExternalPlugins (in category 'plugins') -----
defaultExternalPlugins
^(self versionExternalPlugins),
#(
UUIDPlugin
FloatMathPlugin
AsynchFilePlugin
- SerialPlugin
Mpeg3Plugin
CroquetPlugin
JoystickTabletPlugin
- MIDIPlugin
B3DAcceleratorPlugin
JPEGReadWriter2Plugin
JPEGReaderPlugin
RePlugin
LocalePlugin
ObjectiveCPlugin
QuicktimePlugin
TestOSAPlugin
SqueakSSLPlugin
+ SerialPlugin
+ MIDIPlugin
- "UnixOSProcessPlugin"
)!
Item was changed:
----- Method: CogFamilyCocoaIOSConfig>>defaultInternalPlugins (in category 'plugins') -----
defaultInternalPlugins
^ #(
ADPCMCodecPlugin
BMPReadWriterPlugin
BalloonEnginePlugin
BitBltSimulation
ClipboardExtendedPlugin
DSAPlugin
DeflatePlugin
DropPlugin
FFTPlugin
FilePlugin
FloatArrayPlugin
GeniePlugin
HostWindowPlugin
"JPEGReadWriter2Plugin
JPEGReaderPlugin"
+ KlattSynthesizerPlugin
- KlattSynthesizerPlugin
LargeIntegersPlugin
- "MacMenubarPlugin" "This plugin is not yet ported"
Matrix2x3Plugin
MiscPrimitivePlugin
"RePlugin"
SecurityPlugin
SocketPlugin
SoundCodecPlugin
SoundGenerationPlugin
SoundPlugin
StarSqueakPlugin
SurfacePlugin
UnixAioPlugin
UnixOSProcessPlugin
)!
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.
(FileStream forceNewFileNamed: (maker buildDir / 'Info.plist') fullName)
nextPutAll: plist;
close.
maker
addProperty: 'MACOSX_BUNDLE_INFO_PLIST'
value: '${buildDir}/Info.plist'.
(FileStream forceNewFileNamed: (maker buildDir / self prefixHeaderFileName) fullName )
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-gcse -mtune=prescott -march=pentium-m -falign-functions=16'.
- 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: 'CMAKE_C_COMPILER' to: '/usr/bin/gcc-4.2'.
maker set: 'CMAKE_CXX_COMPILER' to: '/usr/bin/g++-4.2'.
"
maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
maker set: 'RUNTIME_OUTPUT_DIRECTORY' toString: self outputDir fullName.!
Item was changed:
----- Method: CogFamilyUnixConfig>>buildScript (in category 'build script') -----
buildScript
"answer the build script for building everything"
^
+ '#!!/usr/bin/env bash
- '#!!bash
if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
fi
cmake .
make
'!
Item was removed:
- ----- Method: CogFamilyUnixConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- ^ self subclassResponsibility!
Item was changed:
----- Method: CogFamilyUnixConfig>>configureSoundPlugin: (in category 'plugin extra rules') -----
configureSoundPlugin: maker
"extra rules for SoundPlugin"
+ maker addPlatformSources: #( 'sqUnixSound').
+ maker addExternalLibraries: #( 'asound' )!
- maker addPlatformSources: #( 'sqUnixSound')!
Item was added:
+ ----- Method: CogFamilyUnixConfig>>externalModulesDir (in category 'accessing') -----
+ externalModulesDir
+ "answer the location in VM bundle, where plugins and rest of dynamic libs will be copied,
+ "
+ ^ '${outputDir}'!
Item was added:
+ ----- Method: CogFamilyUnixConfig>>setupDirectories: (in category 'utils') -----
+ setupDirectories: gen
+ super setupDirectories: gen.
+ gen set: #externalModulesDir toString: self externalModulesDir.!
Item was changed:
----- Method: CogFamilyWindowsConfig>>buildScript (in category 'build script') -----
buildScript
"answer the build script for building everything"
^
+ '#!!/usr/bin/env bash
- '#!!bash
if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
fi
cmake -G "MSYS Makefiles" .
make
'!
Item was changed:
----- Method: CogFamilyWindowsConfig>>commonCompilerFlags (in category 'compiler flags') -----
commonCompilerFlags
"omit -ggdb2 to prevent generating debug info"
"Some flags explanation:
STACK_ALIGN_BYTES=16 is needed in mingw and FFI (and I suppose on other modules too).
DALLOCA_LIES_SO_USE_GETSP=0 Some compilers return the stack address+4 on alloca function,
then FFI module needs to adjust that. It is NOT the case of mingw.
For more information see this thread: http://forum.world.st/There-are-something-fishy-with-FFI-plugin-td4584226.html
"
+ ^ {
+ '-march=pentium4'.
+ '-mwindows'.
+ '-D_MT'.
+ '-msse2'.
+ '-mthreads'.
+ '-mwin32'.
+ '-mno-rtd'.
+ '-mms-bitfields'.
+ '-mno-accumulate-outgoing-args ', self winVer.
+ '-DWIN32'.
+ '-DWIN32_FILE_SUPPORT'.
+ '-DNO_ISNAN'.
+ '-DNO_SERVICE'.
+ '-DNO_STD_FILE_SUPPORT'.
+ '-DLSB_FIRST'.
+ '-DVM_NAME="', self executableName,'"'.
+ '-DX86 '.
+ '-DSTACK_ALIGN_BYTES=16'.
+ '-DALLOCA_LIES_SO_USE_GETSP=0'.
+ '-DENABLE_FAST_BLT ' }!
- ^ '-march=pentium4 -mwindows -D_MT -msse2 -mthreads -mwin32 -mno-rtd -mms-bitfields -mno-accumulate-outgoing-args ', self winVer ,
- ' -DWIN32 -DWIN32_FILE_SUPPORT -DNO_ISNAN -DNO_SERVICE -DNO_STD_FILE_SUPPORT ',
- '-DLSB_FIRST -DVM_NAME="', self executableName,'" -DX86 ',
- '-DSTACK_ALIGN_BYTES=16 -DALLOCA_LIES_SO_USE_GETSP=0 -DENABLE_FAST_BLT '!
Item was added:
+ ----- Method: CogFamilyWindowsConfig>>configureSoundPlugin: (in category 'plugin extra rules') -----
+ configureSoundPlugin: maker
+ "extra rules for SoundPlugin"
+
+ maker addPlatformSources: #( 'sqWin32Sound' )!
Item was changed:
----- Method: CogFreeBSDConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
compilerFlagsDebug
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-msse2'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1'.
+ '-DNOEXECINFO' }!
- ^ '-g3 -O0 -msse2 -DITIMER_HEARTBEAT=1
- -DNO_VM_PROFILE=1 -DDEBUGVM=1 -DNOEXECINFO'!
Item was changed:
----- Method: CogFreeBSDConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
compilerFlagsRelease
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-msse2'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0'.
+ '-DNOEXECINFO' }
- ^ '-g0 -O2 -msse2 -DNDEBUG -DITIMER_HEARTBEAT=1
- -DNO_VM_PROFILE=1 -DDEBUGVM=0 -DNOEXECINFO'
!
Item was added:
+ Object subclass: #CogMTBuilder
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Builder'!
Item was added:
+ ----- Method: CogMTBuilder class>>build (in category 'building') -----
+ build
+ " self build "
+ "build for platform we're currently running on"
+ | platform |
+
+ platform := Smalltalk os platformName.
+
+ platform = 'Win32' ifTrue: [ ^ self buildWin32 ].
+ platform = 'Mac OS' ifTrue: [ ^ self buildMacOSX32 ].
+ platform = 'unix' ifTrue: [ ^ self buildUnix32 ].!
Item was added:
+ ----- Method: CogMTBuilder class>>buildMacOSX32 (in category 'building') -----
+ buildMacOSX32
+ ^ self new buildMacOSX32!
Item was added:
+ ----- Method: CogMTBuilder class>>buildOnJenkins: (in category 'building') -----
+ buildOnJenkins: aPlatformName
+ "entry point for jenkins build jobs.
+ currently we use following names:
+ win
+ mac
+ linux
+
+ "
+
+ aPlatformName = 'win' ifTrue: [ ^ self buildWin32 ].
+ aPlatformName = 'mac' ifTrue: [ ^ self buildMacOSX32 ].
+ aPlatformName = 'linux' ifTrue: [ ^ self buildUnix32 ].
+
+ self error: 'no suitable platform'!
Item was added:
+ ----- Method: CogMTBuilder class>>buildUnix32 (in category 'building') -----
+ buildUnix32
+ ^ self new buildUnix32!
Item was added:
+ ----- Method: CogMTBuilder class>>buildWin32 (in category 'building') -----
+ buildWin32
+ ^ self new buildWin32!
Item was added:
+ ----- Method: CogMTBuilder>>buildMacOSX32 (in category 'building') -----
+ buildMacOSX32
+
+ CogMTCocoaIOSConfig new
+ generateForRelease;
+ "generateForDebug;"
+ addExternalPlugins: #( FT2Plugin );
+ addInternalPlugins: #( UnixOSProcessPlugin );
+ generateSources; generate.
+ !
Item was added:
+ ----- Method: CogMTBuilder>>buildUnix32 (in category 'building') -----
+ buildUnix32
+
+ CogMTUnixConfig new
+ addExternalPlugins: #( FT2Plugin SqueakSSLPlugin );
+ addInternalPlugins: #( UnixOSProcessPlugin );
+ generateSources; generate.
+ !
Item was added:
+ ----- Method: CogMTBuilder>>buildWin32 (in category 'building') -----
+ buildWin32
+
+ CogMTWindowsConfig new
+
+ addExternalPlugins: #( FT2Plugin SqueakSSLPlugin );
+ addInternalPlugins: #( Win32OSProcessPlugin );
+
+ generateSources; generate.
+ !
Item was added:
+ ----- Method: CogMTBuilder>>initialize (in category 'initialization') -----
+ initialize
+
+ "a stupid temporary hack to workaround initialization problems"
+
+ Cogit allSubclassesDo: [ :each | each initializeWithOptions: (VMMaker new instVarNamed: 'optionsDictionary') ]!
Item was changed:
----- Method: CogMTFreeBSDConfig>>commonCompilerFlags (in category 'compiler flags') -----
commonCompilerFlags
"Common compiler flags
LSB_FIRST=1 means that target platform is little endian.
set it to 0 for big-endian platforms
"
+ ^ {
+ '-DLSB_FIRST=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DCOGMTVM=1' }!
- ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=1'
- !
Item was changed:
----- Method: CogMTMacOSConfig>>commonCompilerFlags (in category 'compiler flags') -----
commonCompilerFlags
"Common compiler flags"
+ ^ {
+ '-fmessage-length=0'.
+ '-Wno-trigraphs'.
+ '-fpascal-strings'.
+ '-fasm-blocks'.
+ '-DCOGMTVM=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DTARGET_API_MAC_CARBON'.
+ '-DHAVE_SYS_TIME_H'.
+ '-mmacosx-version-min=10.5' }!
- ^ ' -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -DCOGMTVM=1 -DUSE_GLOBAL_STRUCT=0 -DTARGET_API_MAC_CARBON -DHAVE_SYS_TIME_H -mmacosx-version-min=10.5'
- !
Item was changed:
----- Method: CogMTUnixConfig>>commonCompilerFlags (in category 'compiler flags') -----
commonCompilerFlags
"Common compiler flags
LSB_FIRST=1 means that target platform is little endian.
set it to 0 for big-endian platforms
"
+ ^ {
+ '-DLSB_FIRST=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DCOGMTVM=1'.
+ '-m32' }!
- ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=1 -m32'
- !
Item was changed:
----- Method: CogMacOSConfig>>commonCompilerFlags (in category 'compiler flags') -----
commonCompilerFlags
"Common compiler flags"
+ ^ {
+ '-fmessage-length=0'.
+ '-Wno-trigraphs'.
+ '-fpascal-strings'.
+ '-fasm-blocks'.
+ '-DCOGMTVM=0'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DTARGET_API_MAC_CARBON'.
+ '-DBUILD_FOR_OSX'.
+ '-DHAVE_SYS_TIME_H'.
+ '-mmacosx-version-min=10.5' }
+ !
- ^ ' -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -DCOGMTVM=0 -DUSE_GLOBAL_STRUCT=0 -DTARGET_API_MAC_CARBON -DBUILD_FOR_OSX -DHAVE_SYS_TIME_H -mmacosx-version-min=10.5'
-
- " ^ '-arch i386 -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -DCOGMTVM=0 -DUSE_GLOBAL_STRUCT=0 -DTARGET_API_MAC_CARBON -DHAVE_SYS_TIME_H -mmacosx-version-min=10.5'"!
Item was removed:
- ----- Method: CogMacOSConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- "depends on config ..."
- ^ self compilerFlagsRelease!
Item was changed:
----- Method: CogMacOSConfig>>compilerFlagsDebug (in category 'compiler flags') -----
compilerFlagsDebug
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-Wmissing-prototypes'.
+ '-Wmissing-braces'.
+ '-Wparentheses'.
+ '-Wunused-function'.
+ '-Wunused-label'.
+ '-Wunused-parameter'.
+ '-Wunused-variable'.
+ '-Wunused-value'.
+ '-Wsign-compare'.
+ '-DDEBUGVM=1'.
+ '-DEXTERNALPRIMSDEBUG=1'.
+ '-gdwarf-2' }!
- ^ self commonCompilerFlags , ' -g3 -O0 -Wmissing-prototypes -Wmissing-braces -Wparentheses -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wsign-compare -DDEBUGVM=1 -DEXTERNALPRIMSDEBUG=1 -gdwarf-2 '!
Item was changed:
----- Method: CogMacOSConfig>>compilerFlagsRelease (in category 'compiler flags') -----
compilerFlagsRelease
" -mdynamic-no-pic "
+ ^ {
+ '-gdwarf-2'.
+ '-O3'.
+ '-funroll-loops'.
+ '-ftree-vectorize'.
+ '-msse3'.
+ '-DDEBUGVM=0'.
+ '-DNDEBUG'.
+ '-Wunused-value'.
+ '-Wuninitialized'.
+ '-falign-functions=16'.
+ '-fno-gcse'.
+ '-mtune=prescott'.
+ '-march=pentium-m'.
+ '-mfpmath=sse'.
+ '-finline-functions'.
+ '-Wall'.
+ '-DUSE_INLINE_MEMORY_ACCESSORS' }!
- ^ self commonCompilerFlags , ' -gdwarf-2 -O3 -funroll-loops -ftree-vectorize -msse3 -DDEBUGVM=0 -DNDEBUG -Wunused-value -Wuninitialized -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS'!
Item was changed:
----- Method: CogMacOSDebugConfig>>compilerFlags (in category 'compiler flags') -----
compilerFlags
+ ^ String streamContents: [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^ self compilerFlagsDebug!
Item was changed:
----- Method: CogOnDebian64Config>>commonCompilerFlags (in category 'accessing') -----
commonCompilerFlags
+ ^ super commonCompilerFlags , { '-L/usr/lib32' }!
- ^ super commonCompilerFlags , ' -L/usr/lib32'!
Item was changed:
----- Method: CogUnixConfig>>commonCompilerFlags (in category 'compiler flags') -----
commonCompilerFlags
"Common compiler flags
LSB_FIRST=1 means that target platform is little endian.
set it to 0 for big-endian platforms
"
+ ^ {
+ '-DLSB_FIRST=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DCOGMTVM=0'.
+ '-m32'.
+ '-DENABLE_FAST_BLT ' }
- ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -DENABLE_FAST_BLT '
!
Item was removed:
- ----- Method: CogUnixConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- "depends on config ..."
- ^ self commonCompilerFlags, ' ' ,self compilerFlagsRelease!
Item was changed:
----- Method: CogUnixConfig>>compilerFlagsDebug (in category 'compiler flags') -----
compilerFlagsDebug
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-msse2'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1' }!
- ^ '-g3 -O0 -msse2 -D_GNU_SOURCE -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=1'
-
- !
Item was changed:
----- Method: CogUnixConfig>>compilerFlagsRelease (in category 'compiler flags') -----
compilerFlagsRelease
"
THIS FLAGS ARE CRASHING COMPILER
-fschedule-insns2
-fschedule-insns
THIS FLAGS ARE CRASHING VM
-ftree-pre
-fcaller-saves
THIS FLAGS ARE WORKING
-O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-vrp
THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves
"
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-fno-tree-pre'.
+ '-fno-caller-saves'.
+ '-msse2'.
+ '-D_GNU_SOURCE'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0' }!
- ^ '-g0 -O2 -fno-tree-pre -fno-caller-saves -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0'!
Item was changed:
----- Method: CogUnixDebugConfig>>compilerFlags (in category 'as yet unclassified') -----
compilerFlags
+ ^ String streamContents: [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^ self commonCompilerFlags, ' ' ,self compilerFlagsDebug!
Item was removed:
- ----- Method: CogWindowsConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- "depends on config ..."
- ^ self commonCompilerFlags, ' ' , self compilerFlagsRelease!
Item was changed:
----- Method: CogWindowsConfig>>compilerFlagsDebug (in category 'plugins') -----
compilerFlagsDebug
"Define NDEBUG for production to exclude asserts "
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-march=pentium4'.
+ '-momit-leaf-frame-pointer'.
+ '-maccumulate-outgoing-args'.
+ '-funroll-loops'.
+ '-DDEBUGVM=1' }!
- ^ '-g3 -O0 -march=pentium4 -momit-leaf-frame-pointer -maccumulate-outgoing-args -funroll-loops -DDEBUGVM=1'!
Item was changed:
----- Method: CogWindowsConfig>>compilerFlagsRelease (in category 'compiler flags') -----
compilerFlagsRelease
"Define NDEBUG for production to exclude asserts "
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-march=pentium4'.
+ '-momit-leaf-frame-pointer'.
+ '-maccumulate-outgoing-args'.
+ '-funroll-loops'.
+ '-DNDEBUG -DDEBUGVM=0'}!
- ^ '-g0 -O2 -march=pentium4 -momit-leaf-frame-pointer -maccumulate-outgoing-args -funroll-loops ',
- '-DNDEBUG -DDEBUGVM=0'!
Item was changed:
----- Method: CogWindowsConfig>>defaultInternalPlugins (in category 'plugins') -----
defaultInternalPlugins
^ #(
ADPCMCodecPlugin
AsynchFilePlugin
B3DAcceleratorPlugin
BalloonEnginePlugin "B2DPlugin"
BitBltSimulation "BitBltPlugin"
BMPReadWriterPlugin
CroquetPlugin
DeflatePlugin "ZipPlugin"
DropPlugin
DSAPlugin "DSAPrims"
FFTPlugin
FilePlugin
FloatArrayPlugin
FloatMathPlugin
HostWindowPlugin
IA32ABIPlugin "IA32ABI"
JoystickTabletPlugin
JPEGReaderPlugin
JPEGReadWriter2Plugin
KlattSynthesizerPlugin "Klatt"
LargeIntegersPlugin "LargeIntegers"
LocalePlugin
Matrix2x3Plugin
MIDIPlugin
MiscPrimitivePlugin
Mpeg3Plugin
RePlugin
SecurityPlugin
SerialPlugin
SocketPlugin
SoundCodecPlugin "SoundCodecPrims"
SoundGenerationPlugin
+ SoundPlugin
StarSqueakPlugin
SurfacePlugin
UUIDPlugin
)!
Item was changed:
----- Method: CogWindowsDebugConfig>>compilerFlags (in category 'as yet unclassified') -----
compilerFlags
+ ^ String streamContents: [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
- "depends on config ..."
- ^ self commonCompilerFlags, ' ' , self compilerFlagsDebug!
Item was changed:
----- Method: MacOSConfig>>buildScript (in category 'build script') -----
buildScript
"answer the build script for building everything"
^
+ '#!!/usr/bin/env bash
- '#!!bash
if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
fi
cmake .
make
make install
'!
Item was added:
+ ----- Method: StackCocoaIOSConfig>>commonCompilerFlags (in category 'settings') -----
+ commonCompilerFlags
+ ^ super commonCompilerFlags!
Item was removed:
- ----- Method: StackCocoaIOSConfig>>compilerFlagsRelease (in category 'settings') -----
- compilerFlagsRelease
- ^#(
- '-g0' '-O0' '-DNDEBUG' '-DDEBUGVM=0'
- '-fomit-frame-pointer'
- '-fdefer-pop -fdelayed-branch -fguess-branch-probability -fcprop-registers -fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants'
- '-fthread-jumps -fcrossjumping -foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm -fexpensive-optimizations -frerun-cse-after-loop -fcaller-saves -fpeephole2 -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing -fstrict-overflow -fdelete-null-pointer-checks -freorder-blocks -freorder-functions -falign-functions -falign-jumps -falign-loops -falign-labels -ftree-vrp -ftree-pre'
- '-finline-functions -funswitch-loops -fgcse-after-reload')!
Item was added:
+ ----- Method: StackCocoaIOSConfig>>setGlobalOptions: (in category 'settings') -----
+ setGlobalOptions: maker
+ super setGlobalOptions: maker.
+ maker set: 'CMAKE_C_COMPILER' to: 'clang'.
+ maker set: 'CMAKE_CXX_COMPILER' to: 'clang++'.!
Item was added:
+ StackUnixConfig subclass: #StackCrossRaspbianConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackCrossRaspbianConfig commentStamp: '<historical>' prior: 0!
+ This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi). But in cross compilation usage.
+
+
+ Usage:
+ StackCrossRaspbianConfig generateWithSources
+
+
+ Fore more information, check the class comments of all the superclasses.
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>addDriver:sources:generator: (in category 'as yet unclassified') -----
+ addDriver: name sources: aSources generator: cmakeGen
+
+ | cfg srcs |
+
+ srcs := aSources inject: '' into: [:res :each | res , ' "', each, '"' ].
+ cfg := cmakeGen
+ captureOutputDuring: [
+ cmakeGen printHeader;
+ project: name;
+ include: '../directories.cmake';
+
+ message: 'Adding module: ', name;
+
+ addDefinitions: self compilerFlags;
+ addDefinitions: '-fPIC -DPIC';
+ set: #sources to: srcs;
+ cmd: 'add_library' params: name, ' SHARED ${sources}';
+ linkDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/lib/arm-linux-gnueabihf/';
+ includeDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/include/';
+ includeDirectories: '${crossDir}/plugins/FilePlugin';
+ includeDirectories: '${targetPlatform}/plugins/B3DAcceleratorPlugin';
+ includeDirectories: '${crossDir}/plugins/B3DAcceleratorPlugin';
+ set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir;
+ cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX ""
+ LINK_FLAGS "', self linkFlags , '"'
+ ].
+
+
+ self write: cfg toFile: ((self buildDir / name) assureExistence / cmakeGen outputFileName) fullName.
+ cmakeGen addSubdirectory: name.
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'as yet unclassified') -----
+ addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
+
+ | cfg srcs |
+
+ srcs := aSources inject: '' into: [:res :each | res , ' "', each, '"' ].
+ cfg := cmakeGen
+ captureOutputDuring: [
+ cmakeGen printHeader;
+ project: name;
+ include: '../directories.cmake';
+
+ message: 'Adding module: ', name;
+
+ addDefinitions: self compilerFlags;
+ addDefinitions: '-fPIC -DPIC';
+ set: #sources to: srcs;
+
+ cmd: 'add_library' params: name, ' SHARED ${sources}';
+ includeDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/include';
+ includeDirectories: '${crossDir}/plugins/FilePlugin';
+ includeDirectories: '${targetPlatform}/plugins/B3DAcceleratorPlugin';
+ includeDirectories: '${crossDir}/plugins/B3DAcceleratorPlugin';
+ set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir fullName;
+ linkDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/lib/arm-linux-gnueabihf/';
+
+ addExternalLibraries: extLibs;
+
+ cmd: 'target_link_libraries' params: name , ' ${LINKLIBS}';
+ cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" '
+ ].
+
+ (self buildDir / name) ensureDirectory.
+ self write: cfg toFile: name , '/', cmakeGen outputFileName.
+ cmakeGen addSubdirectory: name.
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
+ commonCompilerFlags
+
+ "Common compiler flags
+
+
+ LSB_FIRST=1 means that target platform is little endian.
+ set it to 0 for big-endian platforms
+
+ "
+
+ ^ {
+ '-DLSB_FIRST=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DCOGMTVM=0' }
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
+ compilerFlagsDebug
+
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1' }!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
+ compilerFlagsRelease
+ "
+ THIS FLAGS ARE CRASHING COMPILER
+ -fschedule-insns2
+ -fschedule-insns
+
+ THIS FLAGS ARE CRASHING VM
+ -ftree-pre
+ -fcaller-saves
+
+ THIS FLAGS ARE WORKING
+ -O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-vrp
+
+ THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves
+
+ "
+
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-fno-tree-pre'.
+ '-fno-caller-saves'.
+ '-D_GNU_SOURCE'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0' }!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>configH (in category 'as yet unclassified') -----
+ configH
+ " right now its like that "
+ ^ '
+ #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_DLFCN_H 1
+ #define HAVE_ICONV_H 1
+
+ #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 ENABLE_FAST_BLT 1
+ #define squeakInt64 long long
+
+ /* architecture */
+
+ #define OS_TYPE "unix"
+ #define __arm__ 1
+ #define __ARM_ARCH_6__ 1
+ #define VM_HOST "arm-pc-linux-gnu"
+ #define VM_HOST_CPU "arm"
+ /* #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: StackCrossRaspbianConfig>>configureB3DAcceleratorPlugin: (in category 'as yet unclassified') -----
+ configureB3DAcceleratorPlugin: maker
+ "extra rules for B3DAcceleratorPlugin"
+
+ super configureB3DAcceleratorPlugin: maker.
+ maker includeDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/include/'.!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+
+ maker addCrossSources: #(
+ 'BitBltGeneric.c'
+ 'BitBltDispatch.c'
+ ).
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>defaultExternalPlugins (in category 'as yet unclassified') -----
+ defaultExternalPlugins
+ ^ #(
+ B3DAcceleratorPlugin
+ JPEGReaderPlugin
+ JPEGReadWriter2Plugin
+ RePlugin
+ InternetConfigPlugin
+ )!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>defaultInternalPlugins (in category 'as yet unclassified') -----
+ defaultInternalPlugins
+ " took from unixbuild/bld/plugins.int"
+ ^ #(
+ ADPCMCodecPlugin
+ AsynchFilePlugin
+ BalloonEnginePlugin "B2DPlugin"
+ BitBltSimulation "BitBltPlugin"
+ BMPReadWriterPlugin
+ CroquetPlugin
+ DeflatePlugin "ZipPlugin"
+ DropPlugin
+ DSAPlugin "DSAPrims"
+ FFTPlugin
+ FileCopyPlugin
+ FilePlugin
+ FloatArrayPlugin
+ FloatMathPlugin
+ JoystickTabletPlugin
+ KlattSynthesizerPlugin "Klatt"
+ LargeIntegersPlugin "LargeIntegers"
+ Matrix2x3Plugin
+ MIDIPlugin
+ MiscPrimitivePlugin
+ Mpeg3Plugin
+ SecurityPlugin
+ SerialPlugin
+ SocketPlugin
+ SoundCodecPlugin "SoundCodecPrims"
+ SoundGenerationPlugin
+ "SoundPlugin"
+ StarSqueakPlugin
+ SurfacePlugin
+ LocalePlugin
+ )!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>executableName (in category 'as yet unclassified') -----
+ executableName
+ ^ 'PharoS'!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>extraPluginSettings: (in category 'as yet unclassified') -----
+ extraPluginSettings: maker
+
+ maker isExternal ifTrue: [
+ "copy lib to results dir "
+ maker set: 'LIBRARY_OUTPUT_PATH' to: '${outputDir}'
+ ].
+
+ maker set: #linkFlags toString: '${linkFlags}'
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>linkFlags (in category 'as yet unclassified') -----
+ linkFlags
+ ^ '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'!
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>preferredIncludes (in category 'as yet unclassified') -----
+ preferredIncludes
+ ^ #('${CMAKE_FIND_ROOT_PATH}/usr/include/'
+ '${targetPlatform}/plugins/B3DAcceleratorPlugin')
+ !
Item was added:
+ ----- Method: StackCrossRaspbianConfig>>setExtraTargetProperties: (in category 'as yet unclassified') -----
+ setExtraTargetProperties: maker
+
+ "maker setTargetProperties: 'LINK_FLAGS ""'."
+
+ maker puts: 'set_source_files_properties( ${srcVMDir}/cogit.c PROPERTIES
+ COMPILE_FLAGS "-O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer")'.
+
+
+ maker
+ cmd: 'set_source_files_properties'
+ params: ' ${targetPlatform}/vm/sqUnixHeartbeat.c PROPERTIES
+ COMPILE_FLAGS "-O1 -fno-omit-frame-pointer"'.
+
+ maker linkDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/lib/arm-linux-gnueabihf/'.
+
+ maker addExternalLibraries:
+ #(
+ 'm' "math lib"
+ 'dl' "dynamic loader"
+ 'pthread' "posix threads"
+ ).
+
+ maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
+ self addVMDrivers: maker.!
Item was added:
+ StackCrossRaspbianConfig subclass: #StackCrossRaspbianFastBltConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackCrossRaspbianFastBltConfig commentStamp: '<historical>' prior: 0!
+ This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi). But in cross compilation usage.
+
+
+ Usage:
+ StackCrossRaspbianFastBltConfig generateWithSources
+
+
+ Fore more information, check the class comments of all the superclasses.
+ !
Item was added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
+ commonCompilerFlags
+ ^ super commonCompilerFlags, { '-DENABLE_FAST_BLT' }.!
Item was added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
+ compilerFlagsDebug
+
+ ^ {
+ '-g3'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1' }!
Item was added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
+ compilerFlagsRelease
+ "
+ THIS FLAGS ARE CRASHING COMPILER
+ -fschedule-insns2
+ -fschedule-insns
+
+ THIS FLAGS ARE CRASHING VM
+ -ftree-pre
+ -fcaller-saves
+
+ THIS FLAGS ARE WORKING
+ -O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-vrp
+
+ THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves
+
+ "
+
+ ^ {
+ '-g0'.
+ '-D_GNU_SOURCE'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0' }!
Item was added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>configH (in category 'as yet unclassified') -----
+ configH
+ " right now its like that "
+ ^ '
+ #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_DLFCN_H 1
+ #define HAVE_ICONV_H 1
+
+ #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 ENABLE_FAST_BLT 1
+ #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: StackCrossRaspbianFastBltConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+ maker set: 'can_use_assembler' to: 'TRUE'.
+ maker cmd: 'enable_language' params: 'ASM'.
+ maker set: 'CMAKE_ASM_COMPILE_OBJECT' to: '"asasm -cpu 6 -I ${pluginCross} -o <OBJECT> <SOURCE>"'.
+
+ maker addCrossSources: #(
+ 'BitBltArm.c'
+ 'BitBltArmSimd.c'
+ 'BitBltDispatch.c'
+ 'BitBltGeneric.c'
+ 'BitBltArmLinux.c'
+ 'BitBltArmSimdAlphaBlend.s'
+ 'BitBltArmSimdBitLogical.s'
+ 'BitBltArmSimdPixPaint.s'
+ 'BitBltArmSimdSourceWord.s'
+ ).
+ !
Item was changed:
----- Method: StackEvtUnixDebugConfig>>compilerFlags (in category 'compiler flags') -----
compilerFlags
+ ^ String streamContents: [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^ self commonCompilerFlags, ' ' ,self compilerFlagsDebug!
Item was changed:
----- Method: StackIPhoneConfig>>buildScript (in category 'build script') -----
buildScript
"answer the build script for building everything"
^
+ '#!!/usr/bin/env bash
- '#!!bash
+ set -e
+
if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
fi
+ cmake .
+ make
+ find ../{1}/{2}.app/Contents -type f -exec mv ''\{\}'' ../{1}/{2}.app \\;
+ rm -Rf ../{1}/{2}.app/Contents
+ ' format: { self outputDirName. self executableName }!
- cmake -G Xcode .
- xcodebuild -sdk {2} -configuration Release -target {1}
-
- ' format: {self executableName. self sdkTarget}!
Item was changed:
----- Method: StackIPhoneConfig>>commonCompilerFlags (in category 'settings') -----
commonCompilerFlags
"Common compiler flags"
^{
+ '-arch {1}' format: { self architecture }.
+ "CLANG >>"
+ '-fwrapv'. "Non optimization of stackoverflow (to allow number conversions)"
+ '-Wno-return-type'. "to avoid clang to complain about plugins that do not return properly."
+ '-Qunused-arguments'.
+ "CLANG <<"
+ '-isysroot {1}' format: { self sysroot }.
- "'-miphoneos-version-min=4.3'. "
- '-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk' format: { self targetDevice. self sdkVersion}.
'-x objective-c'.
'-std=gnu99'.
'-falign-functions=16'.
'-fno-gcse'.
- '-fno-cse-follow-jumps'.
'-fvisibility=hidden'.
'-funroll-loops'.
'-finline-functions'.
'-mno-thumb'.
- '-fwrapv'.
'-DSTACKVM=1'.
'-DCOGMTVM=0'.
'-DUSE_GLOBAL_STRUCT=0'.
'-DBASE_HEADER_SIZE=4'.
'-DTARGET_OS_IS_IPHONE'.
'-DHAVE_UUID_GENERATE'.
- "'-DUSE_INLINE_MEMORY_ACCESSORS'. "
'-DHAVE_SYS_TIME_H'.
'-DLSB_FIRST'.
'-DHAVE_NANOSLEEP'.
+ '-DISQUEAK_IMAGE={1}' format: { self imageName }.
- '-DISQUEAK_IMAGE=', self imageName.
'-DISQUEAK_SOURCES=PharoV10'.
'-DSTACKVM'}!
Item was changed:
----- Method: StackIPhoneConfig>>configureFT2Plugin: (in category 'plugin extra rules') -----
configureFT2Plugin: maker
"extra rules for Freetype plugin.
a custom rule to build freetype library"
+ | lib |
- | lib devRoot sdkRoot |
- devRoot := '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
- format: { self targetDevice}.
- sdkRoot := '{1}/SDKs/{2}{3}.sdk'
- format: { devRoot. self targetDevice. self sdkVersion}.
-
"add freetype library into loop"
lib := self addThirdpartyLibrary: 'freetype2'.
+ lib configurationFlags: self ft2PluginConfigurationFlags.
- lib configurationFlags: ({
- '--without-zlib'.
- '--without-bzip2'.
- '--host=arm-apple-darwin'.
- '--enable-static=yes'.
- '--enable-shared=no'.
- 'CC={3}/usr/bin/gcc'.
- 'CXX={3}/usr/bin/g++'.
- 'CFLAGS=\\"-arch {1} -std=c99 -Wno-trigraphs -O2 -fwrapv -Wreturn-type -Wunused-variable -fmessage-length=0 -miphoneos-version-min=4.0 -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
- 'LDFLAGS=\\"-arch {1} -isysroot {2}\\"'}
- collect: [ :each | each format: { self architecture. sdkRoot. devRoot} ]).
"link plugin with freetype lib"
+ maker includeDirectories: lib includeDir.
maker addExternalLibrary: '${thirdpartyDir}/out/lib/', lib libraryFileName.
+ maker addExternalDependency: 'freetype2'.
+ !
- maker includeDirectories: lib includeDir. !
Item was added:
+ ----- Method: StackIPhoneConfig>>ft2PluginConfigurationFlags (in category 'plugin extra rules') -----
+ ft2PluginConfigurationFlags
+ ^ {'--without-zlib'.
+ '--without-bzip2'.
+ '--host=arm-apple-darwin'.
+ '--enable-static=yes'.
+ '--enable-shared=no'.
+ 'CFLAGS=\\"-arch {1} -std=c99 -Wno-trigraphs -O2 -fpascal-strings -fwrapv -Wreturn-type -Wunused-variable -fvisibility=hidden -fmessage-length=0 -miphoneos-version-min={3} -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
+ 'LDFLAGS=\\"-arch {1} -miphoneos-version-min={3} -isysroot {2}\\"' }
+ collect: [ :each |
+ each format: {
+ self architecture.
+ self sysroot.
+ self sdkVersion } ]!
Item was changed:
----- Method: StackIPhoneConfig>>sdkVersion (in category 'accessing') -----
sdkVersion
+ ^'7.0'!
- ^'6.1'!
Item was changed:
----- Method: StackIPhoneConfig>>setCommonProperties: (in category 'settings') -----
setCommonProperties: maker
maker set: 'CMAKE_CROSSCOMPILING' to: 'TRUE'.
maker set: 'CMAKE_SYSTEM_NAME' to: 'Darwin'.
maker set: 'CMAKE_SYSTEM_PROCESSOR' to: 'arm'.
maker set: 'SDKVER' toString: self sdkVersion.
+ maker
+ set: 'DEVROOT'
+ toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
+ format: { self targetDevice }).
+ maker
+ set: 'SDKROOT'
+ toString: '${DEVROOT}/SDKs/', self targetDevice,'${SDKVER}.sdk'.
- maker set: 'DEVROOT' toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
- format: { self targetDevice }).
- maker set: 'SDKROOT' toString: '${DEVROOT}/SDKs/', self targetDevice,'${SDKVER}.sdk'.
maker set: 'CMAKE_OSX_SYSROOT' to: 'iphoneos${SDKVER}'.
maker set: 'CMAKE_FIND_ROOT_PATH' to: '"${SDKROOT}" "${DEVROOT}"'.
maker set: 'CMAKE_FIND_ROOT_PATH_MODE_PROGRAM' to: 'ONLY'.
maker set: 'CMAKE_FIND_ROOT_PATH_MODE_LIBRARY' to: 'ONLY'.
maker set: 'CMAKE_FIND_ROOT_PATH_MODE_INCLUDE' to: 'ONLY'.
maker set: 'CMAKE_EXE_LINKER_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
maker set: 'CMAKE_C_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
maker set: 'CMAKE_CXX_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
maker addFrameworks: self frameworks.!
Item was changed:
----- Method: StackIPhoneConfig>>setExtraTargetProperties: (in category 'settings') -----
setExtraTargetProperties: maker
"super setExtraTargetProperties: maker."
| precompiledHeaders plist |
precompiledHeaders := (self executableName, '_Prefix.pch').
(FileStream forceNewFileNamed: (maker buildDir / precompiledHeaders) fullName)
nextPutAll: self precompiledHeaders;
close.
maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', precompiledHeaders.
self setCommonProperties: maker.
" generated and add Info.plist file "
plist := self plistFile.
(FileStream forceNewFileNamed: (maker buildDir / 'Info.plist') fullName)
nextPutAll: plist;
close.
maker addProperty: 'MACOSX_BUNDLE_INFO_PLIST' value: '${buildDir}/Info.plist'.
maker
cmd: 'set_target_properties'
params: self executableName, ' PROPERTIES COMPILE_FLAGS "-include \"', (self buildDir / self prefixHeaderFileName) fullName, '\""'.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY'
toString: self codeSignIdentity.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY'
toString: self targetedDeviceFamilyAsString.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET'
to: self deploymentTargetVersion.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR'
toString: '$(BUILD_DIR)/$(CONFIGURATION)'.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_TEMP_DIR'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_TEMP_DIR'
toString: '$(BUILD_DIR)/$(CONFIGURATION)'.
maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
+ maker puts: 'set_source_files_properties(${srcVMDir}/gcc3x-cointerp.c PROPERTIES COMPILE_FLAGS -O0)'.
+
+
- maker puts: 'set_source_files_properties(${srcVMDir}/gcc3x-cointerp.c PROPERTIES COMPILE_FLAGS -O0)'
!
Item was added:
+ ----- Method: StackIPhoneConfig>>sysroot (in category 'accessing') -----
+ sysroot
+ ^ '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk'
+ format: {
+ self targetDevice.
+ self sdkVersion }!
Item was changed:
----- Method: StackMacOSDebugConfig>>compilerFlags (in category 'compiler flags') -----
compilerFlags
+ ^ String streamContents: [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^ self compilerFlagsDebug!
Item was added:
+ StackUnixConfig subclass: #StackRaspbianConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackRaspbianConfig commentStamp: '<historical>' prior: 0!
+ This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi).
+
+ Usage:
+ StackRaspbianConfig generateWithSources
+
+
+ Fore more information, check the class comments of all the superclasses.
+ !
Item was added:
+ ----- Method: StackRaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'as yet unclassified') -----
+ addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
+
+ | cfg srcs |
+
+ srcs := aSources inject: '' into: [:res :each | res , ' "', each, '"' ].
+ cfg := cmakeGen
+ captureOutputDuring: [
+ cmakeGen printHeader;
+ project: name;
+ include: '../directories.cmake';
+
+ message: 'Adding module: ', name;
+
+ addDefinitions: self compilerFlags;
+ addDefinitions: '-fPIC -DPIC';
+ set: #sources to: srcs;
+ cmd: 'add_library' params: name, ' SHARED ${sources}';
+ includeDirectories: '${crossDir}/plugins/FilePlugin';
+ includeDirectories: '${targetPlatform}/plugins/B3DAcceleratorPlugin';
+ includeDirectories: '${crossDir}/plugins/B3DAcceleratorPlugin';
+ set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir fullName;
+ addExternalLibraries: extLibs;
+ cmd: 'target_link_libraries' params: name , ' ${LINKLIBS}';
+ cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" '
+ ].
+
+ (self buildDir / name) ensureDirectory.
+ self write: cfg toFile: name , '/', cmakeGen outputFileName.
+ cmakeGen addSubdirectory: name.
+ !
Item was added:
+ ----- Method: StackRaspbianConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
+ commonCompilerFlags
+
+ "Common compiler flags
+
+
+ LSB_FIRST=1 means that target platform is little endian.
+ set it to 0 for big-endian platforms
+
+ "
+
+ ^ {
+ '-DLSB_FIRST=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DCOGMTVM=0' } !
Item was added:
+ ----- Method: StackRaspbianConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
+ compilerFlagsDebug
+
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1' }!
Item was added:
+ ----- Method: StackRaspbianConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
+ compilerFlagsRelease
+ "
+ THIS FLAGS ARE CRASHING COMPILER
+ -fschedule-insns2
+ -fschedule-insns
+
+ THIS FLAGS ARE CRASHING VM
+ -ftree-pre
+ -fcaller-saves
+
+ THIS FLAGS ARE WORKING
+ -O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-vrp
+
+ THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves
+
+ "
+
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-fno-tree-pre'.
+ '-fno-caller-saves'.
+ '-D_GNU_SOURCE'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0' }!
Item was added:
+ ----- Method: StackRaspbianConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+
+ maker addCrossSources: #(
+ 'BitBltGeneric.c'
+ 'BitBltDispatch.c'
+ ).
+ !
Item was added:
+ ----- Method: StackRaspbianConfig>>defaultExternalPlugins (in category 'as yet unclassified') -----
+ defaultExternalPlugins
+ ^ #(
+ B3DAcceleratorPlugin
+ JPEGReaderPlugin
+ JPEGReadWriter2Plugin
+ RePlugin
+ InternetConfigPlugin
+ )!
Item was added:
+ ----- Method: StackRaspbianConfig>>defaultInternalPlugins (in category 'as yet unclassified') -----
+ defaultInternalPlugins
+ " took from unixbuild/bld/plugins.int"
+ ^ #(
+ ADPCMCodecPlugin
+ AsynchFilePlugin
+ BalloonEnginePlugin "B2DPlugin"
+ BitBltSimulation "BitBltPlugin"
+ BMPReadWriterPlugin
+ CroquetPlugin
+ DeflatePlugin "ZipPlugin"
+ DropPlugin
+ DSAPlugin "DSAPrims"
+ FFTPlugin
+ FileCopyPlugin
+ FilePlugin
+ FloatArrayPlugin
+ FloatMathPlugin
+ JoystickTabletPlugin
+ KlattSynthesizerPlugin "Klatt"
+ LargeIntegersPlugin "LargeIntegers"
+ Matrix2x3Plugin
+ MIDIPlugin
+ MiscPrimitivePlugin
+ Mpeg3Plugin
+ SecurityPlugin
+ SerialPlugin
+ SocketPlugin
+ SoundCodecPlugin "SoundCodecPrims"
+ SoundGenerationPlugin
+ SoundPlugin
+ StarSqueakPlugin
+ SurfacePlugin
+ LocalePlugin
+ )!
Item was added:
+ ----- Method: StackRaspbianConfig>>executableName (in category 'as yet unclassified') -----
+ executableName
+ ^ 'PharoS'!
Item was added:
+ ----- Method: StackRaspbianConfig>>extraPluginSettings: (in category 'as yet unclassified') -----
+ extraPluginSettings: maker
+
+ maker isExternal ifTrue: [
+ "copy lib to results dir "
+ maker set: 'LIBRARY_OUTPUT_PATH' to: '${outputDir}'
+ ].
+
+ maker set: #linkFlags toString: '${linkFlags}'
+ !
Item was added:
+ ----- Method: StackRaspbianConfig>>linkFlags (in category 'as yet unclassified') -----
+ linkFlags
+ ^ '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'!
Item was added:
+ ----- Method: StackRaspbianConfig>>setExtraTargetProperties: (in category 'as yet unclassified') -----
+ setExtraTargetProperties: maker
+
+ "maker setTargetProperties: 'LINK_FLAGS ""'."
+
+ maker puts: 'set_source_files_properties( ${srcVMDir}/cogit.c PROPERTIES
+ COMPILE_FLAGS "-O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer")'.
+
+
+ maker
+ cmd: 'set_source_files_properties'
+ params: ' ${targetPlatform}/vm/sqUnixHeartbeat.c PROPERTIES
+ COMPILE_FLAGS "-O1 -fno-omit-frame-pointer"'.
+
+
+ maker addExternalLibraries:
+ #(
+ 'm' "math lib"
+ 'dl' "dynamic loader"
+ 'pthread' "posix threads"
+ ).
+
+ maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
+ self addVMDrivers: maker.!
Item was added:
+ StackRaspbianConfig subclass: #StackRaspbianFastBltConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackRaspbianFastBltConfig commentStamp: '<historical>' prior: 0!
+ http://www.cmake.org/Wiki/CMake/Assembler!
Item was added:
+ ----- Method: StackRaspbianFastBltConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
+ commonCompilerFlags
+ ^ super commonCompilerFlags, { '-DENABLE_FAST_BLT' }.!
Item was added:
+ ----- Method: StackRaspbianFastBltConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+
+ maker set: 'can_use_assembler' to: 'TRUE'.
+
+ maker addCrossSources: #(
+ 'BitBltArm.c'
+ 'BitBltArmSimd.c'
+ 'BitBltDispatch.c'
+ 'BitBltGeneric.c'
+ 'BitBltArmLinux.c'
+ 'BitBltArmSimdAlphaBlend.s'
+ 'BitBltArmSimdBitLogical.s'
+ 'BitBltArmSimdPixPaint.s'
+ 'BitBltArmSimdSourceWord.s'
+ ).
+ !
Item was added:
+ ----- Method: StackSimulatorConfig>>commonCompilerFlags (in category 'accessing') -----
+ commonCompilerFlags
+ ^ super commonCompilerFlags, {
+ '-mios-simulator-version-min={1}' format: { self sdkVersion } }!
Item was added:
+ ----- Method: StackSimulatorConfig>>ft2PluginConfigurationFlags (in category 'plugin extra rules') -----
+ ft2PluginConfigurationFlags
+ ^ {'--without-zlib'.
+ '--without-bzip2'.
+ '--host=i386-apple-darwin'.
+ '--enable-static=yes'.
+ '--enable-shared=no'.
+ 'CFLAGS=\\"-arch {1} -pipe -std=c99 -Wno-trigraphs -O2 -fpascal-strings -fwrapv -Wreturn-type -Wunused-variable -fvisibility=hidden -fmessage-length=0 -mios-simulator-version-min={3} -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
+ 'LDFLAGS=\\"-arch {1} -mios-simulator-version-min={3} -isysroot {2}\\"' }
+ collect: [ :each |
+ each format: {
+ self architecture.
+ self sysroot.
+ self sdkVersion } ]!
Item was added:
+ ----- Method: StackSimulatorConfig>>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: 'i386'.
+
+ maker
+ set: 'SDKVER'
+ toString: self sdkVersion.
+ maker
+ set: 'DEVROOT'
+ toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
+ format: { self targetDevice }).
+ maker
+ set: 'SDKROOT'
+ toString: ('$\{DEVROOT\}/SDKs/{1}$\{SDKVER\}.sdk' format: { self targetDevice }).
+
+ maker set: 'CMAKE_OSX_SYSROOT' to: self sysroot.
+
+ 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: '-mios-simulator-version-min=${SDKVER} --sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
+ maker
+ set: 'CMAKE_C_FLAGS'
+ toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
+ maker
+ set: 'CMAKE_CXX_FLAGS'
+ toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
+
+ maker addFrameworks: self frameworks.!
Item was changed:
----- Method: StackSimulatorConfig>>standardIncludes (in category 'source files') -----
standardIncludes
+ ^super standardIncludes, {
+ '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk/usr/include/'
+ format: {
+ self targetDevice.
+ self sdkVersion} }
- ^super standardIncludes, {'/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk/usr/include/'
- format: { self targetDevice. self sdkVersion} }
!
Item was changed:
----- Method: StackUnixDebugConfig>>compilerFlags (in category 'compiler flags') -----
compilerFlags
+ ^ String streamContents: [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^ self commonCompilerFlags, ' ' ,self compilerFlagsDebug!
Item was changed:
----- Method: StackUnixDebugFixedVerSIConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
compilerFlagsDebug
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-msse2'.
+ '-save-temps'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DCOGMTVM=0'.
+ '-DDEBUGVM=1' }!
- ^ '-g3 -O0 -msse2 -save-temps -D_GNU_SOURCE -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=1'
-
- !
More information about the Vm-dev
mailing list