[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.52.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jun 14 20:21:29 UTC 2014


Timothy M uploaded a new version of CMakeVMMakerSqueak to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMakerSqueak-tty.52.mcz

==================== Summary ====================

Name: CMakeVMMakerSqueak-tty.52
Author: tty
Time: 14 June 2014, 4:21:35.64 pm
UUID: 2740ecd5-0a7d-41a4-b53d-c368b2b7e996
Ancestors: CMakeVMMakerSqueak-tty.51

successfully built, compiled and ran Linux32x86SqueakCogV3NoGLConfig

Worked through CMakeVMMaker>generate line by line to ensure CMakeLists.txt was identical on both pharo generated file and squeak generated file.

With 2 discrepencies, they where....

1. pharo git source tree inludes this in platforms/unix/plugins/  while squeak does not have it in SVN. therefore, I commented out this plugin. We discussed this plugin recently on vm-dev and consensus was it is old and unused except for mac.

2. pharo includes externalPlugin ThreadedIA32FFIPlugin which behaves differently than that in squeak.

Modified outputDirName to utilize new dirInstalL as this will mimic the mvm files in the GNU builds.

output is stored in oscogvm/cmake.products/[lang].[vm].[memory manager].[whatever]/dirInstallation.
for Linux32x86SqueakCogV3NoGLConfig this resolves to: oscogvm/cmake.products/squeak.cog.v3.noGL

TESTS FAIL. because of the above change. setting a configs excludeFromBuild to true, makes the tests pass, however, I am leaving them failed as a marker for what I need to implement.

=============== Diff against CMakeVMMakerSqueak-tty.51 ===============

Item was changed:
  ----- Method: CMakeVMMakerSqueakConfigurationsTest>>testOutputDir (in category 'as yet unclassified') -----
  testOutputDir
  	"for each builder, make sure all its configurations provide an outputDir "
  	SqueakCMakeVMMakerAbstractBuilder 
  		subclassesDo:[:builder | | o |
  			Smalltalk globals 
  				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
  					ifTrue:[ 
  							o:= configuration new.
+ 							(o excludeFromBuild not)
+ 								ifTrue:[self assert:(o  outputDir isKindOf: FileDirectory)]]]]
- 							self assert:(o  outputDir isKindOf: FileDirectory)]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakDeveloperHelp class>>cMakeMacros (in category 'pages') -----
+ cMakeMacros
+ 	^HelpTopic
+ 		title:'configuring cmake macros'
+ 		contents:
+ '
+ SystemNavigation default browseMethodsWhoseNamesContain: ''cMakeMacros''
+ '!

Item was changed:
  ----- Method: CMakeVMMakerSqueakDeveloperHelp class>>pages (in category 'pages') -----
  pages
+ 	^#(overview prerequisites igorStasenkoDesign plugins availableBuilds excludeFromBuild executableName extraPluginSettings preferredIncludes setExtraTargetProperties cMakeMacros scratch)!
- 	^#(overview prerequisites igorStasenkoDesign plugins availableBuilds excludeFromBuild executableName extraPluginSettings preferredIncludes setExtraTargetProperties scratch)!

Item was changed:
  ----- Method: Linux32x86Config>>compilerFlags (in category 'compiler flags') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d |
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at:  buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
- 	^ String streamContents: [ :stream |
  		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' ]!

Item was added:
+ ----- Method: Linux32x86Config>>compilerFlagsBuild (in category 'compiler flags') -----
+ compilerFlagsBuild
+ 	"backwards compatability with pharo. If adding, override compilerFlagsRelease in your configuration."
+ 
+ 	^self compilerFlagsRelease.!

Item was added:
+ ----- Method: Linux32x86Config>>executableType (in category 'accessing') -----
+ executableType
+ 	^''
+ 
+ "
+ SystemNavigation default browseMethodsWhoseNamesContain: ''executableType''
+ 	^ 'MACOSX_BUNDLE'
+ 	^ 'WIN32'\
+ 	^ ''
+ "!

Item was changed:
+ ----- Method: Linux32x86Config>>extraVMSettings: (in category 'settings') -----
- ----- Method: Linux32x86Config>>extraVMSettings: (in category 'squeak compatibility') -----
  extraVMSettings: maker
+ 	| versionC |
  	self generateConfigH.
  	
+ 	"add a generated version.c"
  	
+ 	versionC := 'version.c'.
- 	"output a fake version.c file"
  	
+ 	maker cmd: 'add_custom_command' params: 'OUTPUT ',
+ 		versionC , '
+ 		COMMAND ${platformsDir}/unix/config/verstamp ',versionC,' gcc
+ 		COMMENT "Generating version.c"
+ 	'.
+ 	
+ 	!
- 	self write:
- 'int vm_serial= 1;
- char *vm_date= "<HERE IS SUPPOSED TO BE THE DATE>";
- char *cc_version= "<HERE IS SUPPOSED TO BE gcc VERSION>";
- char *ux_version= "<FAKE FROZEN VERSION FOR DEBUGGING PURPOSES>";
- '
- 	toFile: 'version.c'.
- !

Item was changed:
  ----- Method: Linux32x86Config>>linkFlags (in category 'accessing') -----
  linkFlags
+ "	^ super linkFlags , ' -luuid -lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'"
+ 	^ super linkFlags , ' -luuid -lSM -lICE -ldl  -lpthread -lm -lnsl -lX11'
- 	^ super linkFlags , ' -m32'
  
  !

Item was changed:
  ----- Method: Linux32x86Config>>outputDir (in category 'squeak compatibility') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput /  self dirInstall) ]	
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  
  !

Item was added:
+ ----- Method: Linux32x86Config>>preferredIncludes (in category 'source files') -----
+ preferredIncludes
+ 	self flag:'tty'. "pharo does not support newspeak or sista., yet sets this in CogUnixConfig. Is this appropriate here? Revisit when coding newspeak etc"
+ 	^ #( '${targetPlatform}/plugins/B3DAcceleratorPlugin')
+ 	
+ 
+ "SystemNavigation default browseMethodsWhoseNamesContain: 'preferredIncludes'"
+ 	!

Item was added:
+ ----- Method: Linux32x86Config>>setExtraTargetProperties: (in category 'utils') -----
+ setExtraTargetProperties: maker
+ 	self flag:'tty'. "I am nervous about this method up here in this class, but pharo has it in CogUnixConfig, so using as is for now"
+ 
+ 	maker setTargetProperties: 'LINK_FLAGS "-m32"'.
+ 		
+ 	maker puts: 'set_source_files_properties( ${srcVMDir}/cogit.c PROPERTIES 
+ 		COMPILE_FLAGS "-O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer -mno-rtd -mno-accumulate-outgoing-args")'.
+ 		
+ 	
+ 	maker 
+ 		cmd: 'set_source_files_properties'
+ 		params: ' ${targetPlatform}/vm/sqUnixHeartbeat.c PROPERTIES 
+ 		COMPILE_FLAGS "-O1 -fno-omit-frame-pointer -mno-rtd -mno-accumulate-outgoing-args"'.
+ 						
+ 	super setExtraTargetProperties: maker.
+ !

Item was changed:
  ----- Method: Linux32x86SqueakCogV3Config>>commonCompilerFlags (in category 'compiler flags') -----
  commonCompilerFlags
  	^ {
  		'-DLSB_FIRST=1'. 
+ 		'-DUSE_GLOBAL_STRUCT=0'. 
+ 		'-DCOGMTVM=0'. 
+ 		'-m32'.
+ 		'-DENABLE_FAST_BLT ' } 	
- 	      '-m32' .
- 	 } 	
  	!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>compilerFlagsDebug (in category 'compiler flags') -----
+ compilerFlagsDebug
+ "
+ SystemNavigation default browseMethodsWhoseNamesContain: ''compilerFlagsRelease''
+ "
+ 	
+ 
+ 	^ {
+ 		'-g3'. 
+ 		'-O0'. 
+ 		'-msse2'. 
+ 		'-D_GNU_SOURCE'. 
+ 		'-DITIMER_HEARTBEAT=1'. 
+ 		'-DNO_VM_PROFILE=1'. 
+ 		'-DDEBUGVM=1' }!

Item was changed:
+ ----- Method: Linux32x86SqueakCogV3Config>>compilerFlagsRelease (in category 'compiler flags') -----
- ----- Method: Linux32x86SqueakCogV3Config>>compilerFlagsRelease (in category 'cmake') -----
  compilerFlagsRelease
- "tty. cut-n-paste from Igor's CogUnixConfig
- 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 
- 
  "
+ SystemNavigation default browseMethodsWhoseNamesContain: ''compilerFlagsRelease''
+ "
- 
  	^ {
  		'-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: Linux32x86SqueakCogV3Config>>coreSources (in category 'sources') -----
  coreSources
  	"files to include from src/vm dir"
  	^ #(
  		'cogit.c'
+ 		'gcc3x-cointerp.c'
- 		'cointerp.c'
  		)!

Item was removed:
- ----- Method: Linux32x86SqueakCogV3Config>>executableName (in category 'accessing') -----
- executableName
- 	^ 'CogVM'!

Item was changed:
  ----- Method: Linux32x86SqueakCogV3Configz>>compilerFlags (in category 'squeak compatibility') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- compilerFlags 
- 	| releaseFlags |
- 	
- 	releaseFlags := self isGenerateForRelease 
- 		ifTrue: [ self compilerFlagsRelease ]
- 		ifFalse: [ self compilerFlagsDebug ].
- 		
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: Linux32x86SqueakCogV3DebugConfigz>>compilerFlags (in category 'squeak compatibility') -----
  compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 	^  String streamContents:  [ :stream |
- 	self commonCompilerFlags asStringOn: stream delimiter: ' '. 
- 	self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!

Item was added:
+ Linux32x86Config subclass: #Linux32x86SqueakCogV3NoGLConfig
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMakerSqueak-Linux32x86'!
+ 
+ !Linux32x86SqueakCogV3NoGLConfig commentStamp: 'tty 6/7/2014 10:34' prior: 0!
+ A slightly modified configuration, which avoids linking with openGL libraries.
+ 
+ 
+ For more information, check the class comments of all the superclasses.
+ 
+ 
+ Usage:
+ Linux32x86SqueakCogV3NoGLConfig generateWithSources.
+ Or:
+ Linux32x86SqueakCogV3NoGLConfig generate!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>addDriver:sources:generator: (in category 'utils') -----
+ 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}'; 
+ 			includeDirectories: '${crossDir}/plugins/FilePlugin';
+ 			set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir;
+ 			cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" 
+ 			LINK_FLAGS "-lSM -lICE -ldl -lpthread -lm -lnsl -lX11"'
+ 	].
+ 	
+ 		
+ 	self write: cfg toFile: ((self buildDir / name) assureExistence / cmakeGen outputFileName) fullName.
+ 	cmakeGen addSubdirectory:  name.
+ 	!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>commonCompilerFlags (in category 'compiler flags') -----
+ commonCompilerFlags
+ "	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 ' } 	
+ 	!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>compilerFlagsRelease (in category 'compiler flags') -----
+ compilerFlagsRelease
+ 
+ 	^ {
+ 		'-g0'. 
+ 		'-O2'. 
+ 		'-fno-tree-pre'. 
+ 		'-fno-caller-saves'. 
+ 		'-msse2'. 
+ 		'-D_GNU_SOURCE'. 
+ 		'-DNDEBUG'. 
+ 		'-DITIMER_HEARTBEAT=1'. 
+ 		'-DNO_VM_PROFILE=1'. 
+ 		'-DDEBUGVM=0' }!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>configH (in category 'squeak compatibility') -----
+ 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
+ 
+ #undef	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
+ 
+ #undef	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
+ 
+ #endif /* __sq_config_h */
+ 																																																																					
+ 																																																																				'!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>defaultExternalPlugins (in category 'plugins') -----
+ defaultExternalPlugins
+ 	^ #(
+ "		B3DAcceleratorPlugin"
+ 		ThreadedFFIPlugin "SqueakFFIPrims"   "IA32FFIPlugin is what pharo uses"
+ 		"UUIDPlugin"
+ 		"UnixOSProcessPlugin ?? "	
+ 		JPEGReaderPlugin 
+ 		JPEGReadWriter2Plugin 			
+ 		RePlugin
+ 		"InternetConfigPlugin"  "pharo git source tree inludes this in platforms/unix/plugins/  while squeak does not have it in SVN"
+ 	)!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>defaultInternalPlugins (in category 'plugins') -----
+ defaultInternalPlugins
+ 	self flag:'tty'. "if this config compiles with these plugins, then systematically sync and debug with the super class's for didactic purposes"
+ " copied from pharo CogUnixConfig "
+ 	^ #(
+ 		ADPCMCodecPlugin 
+ 		AsynchFilePlugin 
+ 		BalloonEnginePlugin "B2DPlugin" 
+ 		BitBltSimulation "BitBltPlugin"
+ 		BMPReadWriterPlugin 
+ 		CroquetPlugin 
+ 		DeflatePlugin  "ZipPlugin"
+ 		DropPlugin 
+ 		DSAPlugin "DSAPrims" 
+ 		FFTPlugin 
+ 		FileCopyPlugin 
+ 		FilePlugin 
+ 		FloatArrayPlugin 
+ 		FloatMathPlugin 
+ 		IA32ABIPlugin "IA32ABI"
+ 		JoystickTabletPlugin 
+ 		KlattSynthesizerPlugin "Klatt"
+ 		LargeIntegersPlugin "LargeIntegers"
+ 		Matrix2x3Plugin 
+ 		MIDIPlugin 
+ 		MiscPrimitivePlugin 
+ 		Mpeg3Plugin  	
+ 		SecurityPlugin 
+ 		SerialPlugin 
+ 		SocketPlugin 
+ 		SoundCodecPlugin "SoundCodecPrims"
+ 		SoundGenerationPlugin 
+ 		SoundPlugin 
+ 		StarSqueakPlugin 
+ 		SurfacePlugin	
+ 		LocalePlugin
+ 		)!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>dirInstall (in category 'cmake') -----
+ dirInstall
+ 	"the directory of the finished product.. the place where 'make install' puts stuff.
+ 	SystemNavigation default browseMethodsWhoseNamesContain: 'outputDir'
+       "
+ 	^self squeakCogV3 , '.noGL'!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>excludeFromBuild (in category 'cmake') -----
+ excludeFromBuild
+ 	^false   "build this configuration"
+ "	^true"
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>executableName (in category 'accessing') -----
+ executableName
+ 	^ 'CogVM'!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>interpreterClass (in category 'source generation') -----
+ interpreterClass
+ 	^ CoInterpreter!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>prepareForGeneration (in category 'source generation') -----
+ prepareForGeneration
+ 	^self prepareForCogGeneration
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3NoGLConfig>>setupDirectories: (in category 'squeak compatibility') -----
+ setupDirectories: gen
+ 	super setupDirectories: gen.
+ 	gen set: #externalModulesDir toString: self externalModulesDir.!

Item was removed:
- Linux32x86Config subclass: #Linux32x86SqueakCogV3NoGLConfigz
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'CMakeVMMakerSqueak-IslandOfMisfitToys'!
- 
- !Linux32x86SqueakCogV3NoGLConfigz commentStamp: 'tty 6/7/2014 10:34' prior: 0!
- A slightly modified configuration, which avoids linking with openGL libraries.
- 
- 
- For more information, check the class comments of all the superclasses.
- 
- 
- Usage:
- Linux32x86SqueakCogV3NoGLConfig generateWithSources.
- Or:
- Linux32x86SqueakCogV3NoGLConfig generate!

Item was removed:
- ----- Method: Linux32x86SqueakCogV3NoGLConfigz>>addDriver:sources:generator: (in category 'utils') -----
- 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}'; 
- 			includeDirectories: '${crossDir}/plugins/FilePlugin';
- 			set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir;
- 			cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" 
- 			LINK_FLAGS "-lSM -lICE -ldl -lpthread -lm -lnsl -lX11"'
- 	].
- 	
- 		
- 	self write: cfg toFile: ((self buildDir / name) assureExistence / cmakeGen outputFileName) fullName.
- 	cmakeGen addSubdirectory:  name.
- 	!

Item was removed:
- ----- Method: Linux32x86SqueakCogV3NoGLConfigz>>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
- 
- #undef	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
- 
- #undef	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
- 
- #endif /* __sq_config_h */
- 																																																																					
- 																																																																				'!

Item was removed:
- ----- Method: Linux32x86SqueakCogV3NoGLConfigz>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	"Removed the B3DAcceleratorPlugin since we don't have OpenGL bindings here"
- 	^ (super defaultExternalPlugins copyWithoutAll: #(#B3DAcceleratorPlugin #ThreadedIA32FFIPlugin #InternetConfigPlugin))
- !

Item was removed:
- ----- Method: Linux32x86SqueakCogV3NoGLConfigz>>excludeFromBuild (in category 'cmake') -----
- excludeFromBuild
- "	^false"   "build this configuration"
- 	^true
- 
- !

Item was added:
+ ----- Method: Linux32x86SqueakStackSpurConfigz>>compilerFlags (in category 'compiler flags') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!

Item was changed:
  ----- Method: Linux32x86SqueakStackV3Configz>>compilerFlags (in category 'squeak compatibility') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- compilerFlags 
- 	| releaseFlags |
- 	
- 	releaseFlags := self isGenerateForRelease 
- 		ifTrue: [ self compilerFlagsRelease ]
- 		ifFalse: [ self compilerFlagsDebug ].
- 		
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: Linux32x86SqueakStackV3SlackwareConfig>>compilerFlags (in category 'squeak compatibility') -----
  compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 	^super compilerFlags!

Item was changed:
  ----- Method: Linux32x86SqueakStackV3SlackwareNoGLConfig>>compilerFlags (in category 'squeak compatibility') -----
  compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 		^super compilerFlags!

Item was changed:
  ----- Method: Linux64Config>>compilerFlags (in category 'squeak compatibility') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: Linux64Config>>outputDir (in category 'squeak compatibility') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput / self dirInstall) ]	
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  
  !

Item was changed:
  ----- Method: SqueakAndroidStackEvtConfig>>outputDir (in category 'directories') -----
  outputDir
+ 
+ 	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
+ 
+ !
- 	^outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
- 	!

Item was changed:
  ----- Method: SqueakBSDConfig>>compilerFlags (in category 'squeak compatibility') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: SqueakBSDConfig>>outputDir (in category 'squeak compatibility') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  
  !

Item was changed:
  ----- Method: SqueakCMakeVMMakerAbstractBuilder>>configureABuildFor:withBuildType: (in category 'building') -----
  configureABuildFor: configSymbol withBuildType: typeSymbol
  	| i |
+ 	self flag:'tty'. "excludeFromBuild returning True does not exit gracefully"
  	"Do some sanity checks, then set the internal state of a Configuration for a particular build type. "
  	[
  	((Smalltalk at: configSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
  		ifTrue:[	
  				config := (Smalltalk at: configSymbol) new.                              "verify this config can handle this build type."
  				config excludeFromBuild                                                         "has a developer excluded this build manually?"
+ 					ifTrue:[^self userErrorConfigMarkedAsExcludeFromBuild: configSymbol].   
- 					ifTrue:[^self userErrorConfigMarkedAsExcludeFromBuild: configSymbol].
  				i:=config availableBuilds indexOf:typeSymbol                                    
  						ifAbsent:[^self userErrorInvalidBuildType: typeSymbol "this config does not support this build type"
  										forConfiguration: configSymbol 
  										hasTypes: config availableBuilds].
  
  				(config configureForBuildType: typeSymbol) value.                             "config configure yourself"
  				^self]
  		ifFalse:[^self userErrorInvalidTarget: configSymbol]
  	] ifError:[^'error configureABuildFor: ''', configSymbol].
  
  	^nil.
  	
  
  	!

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>compilerFlags (in category 'compiler flags') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!

Item was changed:
  ----- Method: SqueakIA32BochsConfig>>outputDir (in category 'squeak compatibility') -----
  outputDir
+ 
+ 	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
+ 
+ !
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	!

Item was changed:
  ----- Method: SqueakMacOSCogV3DebugConfig>>compilerFlags (in category 'accessing') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was added:
+ ----- Method: SqueakMacOSConfig>>compilerFlags (in category 'compiler flags') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!

Item was changed:
  ----- Method: SqueakMacOSConfig>>outputDir (in category 'squeak compatibility') -----
  outputDir
+ 
+ 	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
+ 
+ !
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	!

Item was changed:
  ----- Method: SqueakMacOSStackV3DebugConfig>>compilerFlags (in category 'accessing') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: SqueakMacOSV3Config>>compilerFlags (in category 'accessing') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- compilerFlags 
- 	| releaseFlags |
- 	
- 	releaseFlags := self isGenerateForRelease 
- 		ifTrue: [ self compilerFlagsRelease ]
- 		ifFalse: [ self compilerFlagsDebug ].
- 		
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: SqueakMacOSV3Config>>outputDir (in category 'accessing') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  
  !

Item was changed:
  ----- Method: SqueakMacOSX32x86Config>>compilerFlags (in category 'accessing') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: SqueakMacOSX32x86Config>>outputDir (in category 'accessing') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  
  !

Item was changed:
  ----- Method: SqueakMacOSXPowerPCConfig>>compilerFlags (in category 'accessing') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: SqueakMacOSXPowerPCConfig>>outputDir (in category 'accessing') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  
  !

Item was added:
+ ----- Method: SqueakSunOS32x86Config>>compilerFlags (in category 'compiler flags') -----
+ compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!

Item was changed:
  ----- Method: SqueakSunOS32x86Config>>outputDir (in category 'squeak compatibility') -----
  outputDir
+ 
+ 	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
+ 
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
  !

Item was changed:
  ----- Method: SqueakWin32x86CogFamilyConfig>>compilerFlags (in category 'directories') -----
  compilerFlags
+ 	|d commonFlags flags|
- 	|d releaseFlags|
- 	self break.
- 	releaseFlags := self isGenerateForRelease .
  	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
  	d 
  		at: #build put: [self compilerFlagsBuild];
  		at: #buildAssert  put: [self compilerFlagsAssert];
  		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
              at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
  		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
  		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
  		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
  		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
  		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
  		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
  		at: #buildNone put:[self compilerFlagsNoBuildType].
-      (d at: self buildType) value.
  
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
- 	^ String streamContents: [ :stream |
- 		((self commonCompilerFlags, releaseFlags)
  			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 			delimiter: ' ' )]!

Item was changed:
  ----- Method: SqueakWin32x86CogFamilyConfig>>outputDir (in category 'directories') -----
  outputDir
  
  	"the directory where built binaries will be stored"
+ 	^ outputDir ifNil: [ outputDir := (self topDir / self dirOutput/ self dirInstall) ]	
  
+ !
- 	^ outputDir ifNil: [ outputDir :=  (self topDir / self outputDirName) ]!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>dirInstall (in category 'cmake') -----
+ dirInstall
+ 	"the directory of the finished product.. the place where 'make install' puts stuff.
+ 	SystemNavigation default browseMethodsWhoseNamesContain: 'outputDir'
+       "
+ self required.
+ !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>executableType (in category 'accessing') -----
+ executableType
+ 	self required.
+ 
+ "
+ SystemNavigation default browseMethodsWhoseNamesContain: ''executableType''
+ 	^ 'MACOSX_BUNDLE'
+ 	^ 'WIN32'\
+ 	^ ''
+ "!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>extraVMSettings: (in category 'settings') -----
+ extraVMSettings: maker
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>frameworks (in category 'accessing') -----
+ frameworks
+ 	"leave empty for all platforms but Mac OS"
+ 	^ #()!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>outputDirName (in category 'cmake') -----
+ outputDirName
+ 	^ 'products'!

Item was changed:
  ----- Method: Win32x86SqueakCogV3DebugConfigz>>compilerFlags (in category 'directories') -----
  compilerFlags
+ 	|d commonFlags flags|
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self compilerFlagsBuild];
+ 		at: #buildAssert  put: [self compilerFlagsAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self compilerFlagsAssertITimerHeartbeat];
+             at:#buildDebug  put: [self compilerFlagsDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self compilerFlagsDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self compilerFlagsDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self compilerFlagsIHeartbeatTimer];
+ 		at: #buildMultiThreaded  put: [self compilerFlagsMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self compilerFlagsMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self compilerFlagsMultiThreadedDebug ];
+ 		at: #buildNone put:[self compilerFlagsNoBuildType].
+ 
+     flags:= String streamContents: [ :stream |
+ 	 (((d at:  buildType) value)  collect: #withBlanksTrimmed as: Set)
+ 		asStringOn: stream 
+ 		delimiter:' '].
+ 
+     commonFlags:=String streamContents: [ :stream |
+ 		((self commonCompilerFlags) collect: #withBlanksTrimmed as: Set)
+ 			asStringOn: stream 
+ 			delimiter: ' ' ].
+ 	^ commonFlags, ' ' ,flags.!
- 	^ String streamContents:  [ :stream |
- 	self commonCompilerFlags asStringOn: stream delimiter: ' '. 
- 	self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!



More information about the Vm-dev mailing list