[Vm-dev] VM Maker: CMakeVMMaker-EstebanLorenzano.212.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jul 10 12:39:31 UTC 2013
Esteban Lorenzano uploaded a new version of CMakeVMMaker to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.212.mcz
==================== Summary ====================
Name: CMakeVMMaker-EstebanLorenzano.212
Author: EstebanLorenzano
Time: 10 July 2013, 2:38:10.569 pm
UUID: 343629c9-047f-421b-bfca-8066e78ffd0b
Ancestors: CMakeVMMaker-EstebanLorenzano.211
- added #configureBitBltSimulation: for BitBlt external dependencies.
=============== Diff against CMakeVMMaker-EstebanLorenzano.211 ===============
Item was added:
+ ----- Method: CPlatformConfig>>configureBitBltSimulation: (in category 'plugin extra rules') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+
+ maker addCrossSources: #(
+ 'BitBltGeneric.c'
+ 'BitBltDispatch.c'
+ ).
+ !
Item was changed:
----- Method: CogFamilyCocoaIOSConfig>>commonCompilerFlags (in category 'settings') -----
commonCompilerFlags
^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')!
- '-DBASE_HEADER_SIZE=4')!
Item was changed:
+ ----- Method: CogFamilyUnixConfig>>configureAsynchFilePlugin: (in category 'plugin extra rules') -----
- ----- Method: CogFamilyUnixConfig>>configureAsynchFilePlugin: (in category 'as yet unclassified') -----
configureAsynchFilePlugin: maker
maker addPlatformSources:
#(
'sqUnixAsynchFile.c'
)
!
Item was changed:
+ ----- Method: CogFamilyUnixConfig>>configureFileCopyPlugin: (in category 'plugin extra rules') -----
- ----- Method: CogFamilyUnixConfig>>configureFileCopyPlugin: (in category 'as yet unclassified') -----
configureFileCopyPlugin: maker
"extra rules for DropPlugin"
maker addPlatformSources: #( 'sqUnixFileCopyPlugin')
!
Item was changed:
+ ----- Method: CogFamilyUnixConfig>>extraVMSettings: (in category 'settings') -----
- ----- Method: CogFamilyUnixConfig>>extraVMSettings: (in category 'as yet unclassified') -----
extraVMSettings: maker
| versionC |
self generateConfigH.
"add a generated version.c"
versionC := 'version.c'.
maker cmd: 'add_custom_command' params: 'OUTPUT ',
versionC , '
COMMAND ${platformsDir}/unix/config/verstamp ',versionC,' gcc
COMMENT "Generating version.c"
'.
!
Item was changed:
+ ----- Method: CogFamilyUnixConfig>>platformName (in category 'accessing') -----
- ----- Method: CogFamilyUnixConfig>>platformName (in category 'as yet unclassified') -----
platformName
^ 'unix'!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>buildScript (in category 'build script') -----
- ----- Method: CogFamilyWindowsConfig>>buildScript (in category 'as yet unclassified') -----
buildScript
"answer the build script for building everything"
^
'#!!bash
if [ !! -e vmVersionInfo.h ]; then
../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 '!
- '-DSTACK_ALIGN_BYTES=16 -DALLOCA_LIES_SO_USE_GETSP=0 '!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>executableType (in category 'accessing') -----
- ----- Method: CogFamilyWindowsConfig>>executableType (in category 'as yet unclassified') -----
executableType
^ 'WIN32'!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>externalModulesDir (in category 'accessing') -----
- ----- Method: CogFamilyWindowsConfig>>externalModulesDir (in category 'as yet unclassified') -----
externalModulesDir
"answer the location in VM bundle, where plugins and rest of dynamic libs will be copied,
"
^ '${outputDir}'!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>fixLineEndsOf: (in category 'utils') -----
- ----- Method: CogFamilyWindowsConfig>>fixLineEndsOf: (in category 'as yet unclassified') -----
fixLineEndsOf: string
^ string copyReplaceAll: String cr with: String crlf!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>msysPathFor: (in category 'accessing') -----
- ----- Method: CogFamilyWindowsConfig>>msysPathFor: (in category 'as yet unclassified') -----
msysPathFor: aPath
| path |
path := aPath asFileReference fullName.
path := path copyReplaceAll: '\' with: '/'.
^ path " copyReplaceAll: '\' with: '\\'"!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>platformName (in category 'accessing') -----
- ----- Method: CogFamilyWindowsConfig>>platformName (in category 'as yet unclassified') -----
platformName
^ 'win32'!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>setupDirectories: (in category 'directories') -----
- ----- Method: CogFamilyWindowsConfig>>setupDirectories: (in category 'as yet unclassified') -----
setupDirectories: gen
"we have to override that, because we need to convert windoze paths to msys ones"
| dirsInclude |
" write the directories in separate include file"
dirsInclude := gen captureOutputDuring: [
gen
set: #topDir toString: (self msysPathFor: self topDir fullName);
set: #buildDir toString: (self buildDir ifNil: ['${topDir}/build'] ifNotNil:[ self msysPathFor: self buildDir fullName ]);
set: #thirdpartyDir toString: '${buildDir}/thirdparty';
set: #platformsDir toString: (self msysPathFor: self platformsDir);
set: #srcDir toString: (self msysPathFor: self srcDir);
set: #srcPluginsDir toString: (pluginsDir ifNil: [ '${srcDir}/plugins' ]);
set: #srcVMDir toString: '${srcDir}/vm';
set: #platformName toString: self platformName;
set: #targetPlatform to: '${platformsDir}/${platformName}';
set: #crossDir toString: '${platformsDir}/Cross';
set: #platformVMDir toString: '${targetPlatform}/vm';
set: #outputDir toString: (self msysPathFor: self outputDir).
].
self write: dirsInclude toFile: 'directories.cmake'.
gen include: 'directories.cmake'.
gen set: #externalModulesDir toString: self externalModulesDir.
!
Item was changed:
+ ----- Method: CogFamilyWindowsConfig>>winVer (in category 'accessing') -----
- ----- Method: CogFamilyWindowsConfig>>winVer (in category 'as yet unclassified') -----
winVer
"Set minimum version to WindowsXP (see /cygwin/usr/include//w32api/w32api.h)"
^ '-D_WIN32_WINNT=0x0501 -DWINVER=0x0501'!
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'
!
More information about the Vm-dev
mailing list