[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.58.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jun 16 22:39:07 UTC 2014
Timothy M uploaded a new version of CMakeVMMakerSqueak to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMakerSqueak-tty.58.mcz
==================== Summary ====================
Name: CMakeVMMakerSqueak-tty.58
Author: tty
Time: 16 June 2014, 6:39:15.056 pm
UUID: e61942f8-d638-4306-8cd6-34bb6275454e
Ancestors: CMakeVMMakerSqueak-tty.57
configureBuild coded in Trait
There are several methods in there that have to be determined at generate time.
One of those is configH which I just successfully re-routed and was able to customize on a per-buildType basis.
Tested this on Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig
All tests still pass.
Next up, intercept and route:
setGlobalOptionsBuild: aMaker
setGlobalOptionsAfterDetermineSystemBuild: aMaker
setupDirectoriesBuild: aMaker;
extraVMSettingsBuild: aMaker
postBuildActionsBuild: aMaker
=============== Diff against CMakeVMMakerSqueak-tty.57 ===============
Item was changed:
----- Method: CMakeVMMakerSqueakHowToCreateNewConfiguration class>>step4 (in category 'pages') -----
step4
^HelpTopic
title:'Step 4. Customize the "cmake build type config" protocol'
contents:
+ 'When we invoke a Builder with a command like:
- 'TODO: summarize this
+ SqueakLinux64x86w32CompatBuilder
+ configureA: #Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig forBuildType: #buildDebugITimerHeartbeat;
+ generateSources;
+ generate.
+
+ We are telling the Builder to select a Configuration and have that Configuration configure itself to produce CMake output for the buildType: #buildDebugITimerHeartbeat;
+
+ On your configuration the entry point for your configuration is one of:
+
+ configureBuild
+ configureBuildAssert
+ configureBuildAssertITimerHeartbeat
+ configureBuildDebug
+ configureBuildDebugITimerHeartbeat <----this one is selected by buildType: #buildDebugITimerHeartbeat;
+ configureBuildITimerHeartbeat
+ configureBuildMultiThreaded
+ configureBuildMultiThreadedAssert
+ configureBuildMultiThreadedDebug
+
+ Within this method, system state is set up and customizable for many methods in CMakeVMaker CPlatformConfig.
+
+ "setGlobalOptions: aMaker"
+ "setGlobalOptionsAfterDetermineSystem: aMaker"
- setGlobalOptions
- setGlobalOptionsAfterDetermineSystem
setupDirectories
preferredIncludes
standardIncludes
compilerFlags
+ "extraVMSettings: aMaker"
- extraVMSettings
internalPlugins
externalPlugins
thirdpartyLibs
+ "setExtraTargetProperties: aMaker"
+ "postBuildActions: aMaker"
+ configH
- setExtraTargetProperties:aMaker
- postBuildActions: aMaker
+ The methods above that take the : aMaker argument are handled on-the-fly later in the process and are only presented here for informational purposes.
+
+
+
A Reminder: Consistent Naming Conventions Are Our Friends!!
'!
Item was changed:
----- Method: CMakeVMMakerSqueakHowToCreateNewConfiguration class>>step4m (in category 'pages') -----
step4m
^HelpTopic
title:'Step4m configH'
contents:
+ ' This is the contents of a config.h file in the build directory.
+ It is used only in Unix builds in CMakeVMMaker.
- 'TODO: summarize this
+ It is called from the method ''extraVMSettings'' of CogUnixConfig in CMakeVMMaker when CogUnixConfig sends the message: self generateConfigH.
+ To provide a custom config.h CMakeVMakerSqueak subclasses that message ''self generateConfigH'' and routes the call
+ to ''generateConfigH: aBuildType''
+
+ From there, a block is evaluated appropriate for the build type that invokes a ''configHBuildXYZ'' method which can be overridden by you to
+ return a custom config.h. The default is to return the base configH.
+
+
A Reminder: Consistent Naming Conventions Are Our Friends!!
'!
Item was changed:
+ ----- Method: Linux32x86Config>>generateConfigH (in category 'headers generation') -----
- ----- Method: Linux32x86Config>>generateConfigH (in category 'squeak compatibility') -----
generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
- "will fix that later"
- self write: self configH toFile: 'config.h'!
Item was added:
+ ----- Method: Linux64Config>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
Item was changed:
----- Method: Linux64x86w32BitConfig>>configureBuild (in category 'cmake') -----
configureBuild
+ "configure this Configuration for a buildType #build"
+ self
+ " setGlobalOptionsBuild: aMaker"
+ " setGlobalOptionsAfterDetermineSystemBuild: aMaker"
+ " setupDirectoriesBuild: aMaker;"
+ preferredIncludesBuild;
+ standardIncludesBuild;
+ compilerFlagsBuild;
+ " extraVMSettingsBuild: aMaker"
+ internalPluginsBuild;
+ externalPluginsBuild;
+ thirdpartyLibsBuild.
+ " postBuildActionsBuild: aMaker"
+ " configHBuild"!
- self required!
Item was changed:
+ ----- Method: Linux64x86w32BitConfig>>generateConfigH (in category 'headers generation') -----
- ----- Method: Linux64x86w32BitConfig>>generateConfigH (in category 'squeak compatibility') -----
generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType asSymbol) toFile: 'config.h'
+ !
- "will fix that later"
- self write: self configH toFile: 'config.h'!
Item was removed:
- ----- Method: Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig>>configH (in category 'squeak compatibility') -----
- configH
- ^ '
-
- #define HAVE_UUID_H 1
- #define HAVE_UUIDGEN 1
-
- #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
- /* #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
- #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: Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig>>configHBuild (in category 'headers generation') -----
+ configHBuild
+ ^ '
+
+ #define HAVE_UUID_H 1
+ #define HAVE_UUIDGEN 1
+
+ #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
+ /* #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
+ #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 changed:
+ ----- Method: SqueakAndroidStackEvtConfig>>generateConfigH (in category 'headers generation') -----
- ----- Method: SqueakAndroidStackEvtConfig>>generateConfigH (in category 'source files') -----
generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
- "will fix that later"
- self write: self configH toFile: 'config.h'!
Item was added:
+ ----- Method: SqueakBSDConfig>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
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].
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>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
Item was added:
+ ----- Method: SqueakMacOSConfig>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
Item was changed:
+ ----- Method: SqueakMacOSXPowerPCConfig>>generateLicense (in category 'accessing') -----
- ----- Method: SqueakMacOSXPowerPCConfig>>generateLicense (in category 'as yet unclassified') -----
generateLicense
self
write: (self class licenseTemplate
format: { self version })
toFile: 'LICENSE.txt'
!
Item was changed:
+ ----- Method: SqueakMacOSXPowerPCConfig>>generatePluginsList (in category 'accessing') -----
- ----- Method: SqueakMacOSXPowerPCConfig>>generatePluginsList (in category 'as yet unclassified') -----
generatePluginsList
self
write: (self class pluginsTemplate
format: {
self version.
String streamContents: [ :stream | self internalPlugins asStringOn: stream delimiter: String cr ].
String streamContents: [ :stream | self externalPlugins asStringOn: stream delimiter: String cr ].
self executableName })
toFile: 'PLUGINS.txt'
!
Item was changed:
+ ----- Method: SqueakMacOSXPowerPCConfig>>version (in category 'accessing') -----
- ----- Method: SqueakMacOSXPowerPCConfig>>version (in category 'as yet unclassified') -----
version
^ ''!
Item was added:
+ ----- Method: SqueakSunOS32x86Config>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
Item was added:
+ ----- Method: SqueakWin32x86Config>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ "
+ self write: (self generateConfigH: buildType) toFile: 'config.h'
+ !
Item was changed:
----- Method: TCPlatformConfigForSqueak>>configH (in category 'headers generation') -----
configH
+ "ONLY USED ON UNIX CONFIGS included here for completeness and consistency CogUnixConfig browse.
- self flag:'tty' . "TODO: express correctly the 'what' and 'why' of this method"
- self required
"
+ "
Use configH to tell your plugins where to find its libraries etc.
The version of this is platform dependent.
You may also need to edit your oscogvm/platforms/YOUR PLATFORM/plugins/ThePLuginDirectory/acinclude.m4 file so that it conforms to your system.
tty needed a custom version of this in Linux32x86SqueakCogV3NoGLConfig in order to build the UUIDPlugin.
Go to oscogvm/platforms/YOUR PLATFORM/plugins/ThePLuginDirectory and look at the acinclude.m4 file
you may need to edit that .
NOTE: CPlatformConfig contains a useable version of this that you can modify.
I reproduce it here, but with double quotes changed to two single quotes so that the commenting will hold.
I provide a <---N.B quotes need changing at each place they have been modified.
Again. it is easier to copy the one in CPlatformConfig.
^ '
#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 */
#define HAVE_LIBXEXT 1
#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
/* #undef HAVE_ICONV_H */
#define HAVE_SYS_TIME_H 1
#define TIME_WITH_SYS_TIME 1
#define HAVE_SYS_FILIO_H 1
/* #undef HAVE_SYS_AUDIOIO_H */
/* #undef HAVE_SUN_AUDIOIO_H */
/* #undef HAVE_PTY_H */
/* #undef HAVE_UTIL_H */
#define HAVE_LIBUTIL_H 1
/* #undef HAVE_STROPTS_H */
#define HAVE_GL_GL_H 1
/* #undef HAVE_OPENGL_GL_H */
/* #undef NEED_SUNOS_H */
#define HAVE_UUID_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
/* #undef HAVE_ALLOCA_H */
#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'' <---N.B quotes need changing at each place they have been modifying.
#define VM_HOST ''i386-freebsd8.2'' <---N.B quotes need changing at each place they have been modifying.
#define VM_HOST_CPU ''i386'' <---N.B quotes need changing at each place they have been modifying.
/* #undef VM_HOST_VENDOR */
#define VM_HOST_OS ''freebsd8.2'' <---N.B quotes need changing at each place they have been modifying.
#define VM_BUILD_STRING ''Unix built on ''__DATE__ '' ''__TIME__'' Compiler: ''__VERSION__ <---N.B quotes need changing at each place they have been modifying.
/* #undef WORDS_BIGENDIAN */
/* #undef DOUBLE_WORD_ALIGNMENT */
/* damage containment */
/* #undef DARWIN */
#ifdef NEED_SUNOS_H
# include ''sunos.h'' <---N.B quotes need changing at each place they have been modifying.
#endif
/* other configured variables */
#define SQ_VERSION ''3.9a-7024'' <---N.B quotes need changing at each place they have been modifying.
#define VM_VERSION ''3.9-7'' <---N.B quotes need changing at each place they have been modifying.
#define VM_MODULE_PREFIX '' <---N.B quotes need changing at each place they have been modifying.
/* #undef VM_DLSYM_PREFIX */
#define VM_X11DIR '/usr/X11R6/lib' <---N.B quotes need changing at each place they have been modifying.
/* avoid dependencies on glibc2.3 */
/* #undef HAVE_FEATURES_H */
#if defined(HAVE_FEATURES_H)
# include ''glibc.h'' <---N.B quotes need changing at each place they have been modifying.
#endif
#endif /* __sq_config_h */
'
"!
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configHNoBuildType (in category 'headers generation') -----
+ configHNoBuildType
+ "SHOULD NOT GET HERE"
+ self halt.!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>configureBuild (in category 'cmake configuration') -----
configureBuild
+ "configure this Configuration for a buildType #build"
+ self
+ " setGlobalOptionsBuild: aMaker"
+ " setGlobalOptionsAfterDetermineSystemBuild: aMaker"
+ " setupDirectoriesBuild: aMaker;"
+ preferredIncludesBuild;
+ standardIncludesBuild;
+ compilerFlagsBuild;
+ " extraVMSettingsBuild: aMaker"
+ internalPluginsBuild;
+ externalPluginsBuild;
+ thirdpartyLibsBuild
+ " postBuildActionsBuild:"
+ " configHBuild."
+
+
+
+
+
+ !
- self compilerFlagsBuild.!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>generateConfigH (in category 'headers generation') -----
generateConfigH
+ "
+ used to be:
+ self write: self configH toFile: 'config.h'
+ but with variable buildTypes we need:
+ self write: (generateConfigH: (self buildType))toFile: 'config.h'
+ However, I cannot use an instanceVariable in a Trait. so must implement in concrete class
+ "
+ self required.
+
+ !
- "will fix that later"
- self write: self configH toFile: 'config.h'!
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>generateConfigH: (in category 'headers generation') -----
+ generateConfigH: aBuildType
+ "self write: self configH toFile: 'config.h'"
+
+ |d |
+ d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ d
+ at: #build put: [self configHBuild];
+ at: #buildAssert put: [self configHBuildAssert];
+ at: #buildAssertITimerHeartbeat put: [self configHBuildAssertITimerHeartbeat];
+ at:#buildDebug put: [self configHBuildDebug]; "located in CMakeVMMaker CPlatformConfig"
+ at: #buildDebugITimerHeartbeat put: [self configHBuildDebugITimerHeartbeat ];
+ at: #buildDebugMultiThreaded put: [self configHBuildDebugMultiThreaded];
+ at: #buildITimerHeartbeat put: [self configHBuildITimerHeartbeat];
+ at: #buildMultiThreaded put: [self configHBuildMultiThreaded ];
+ at: #buildMultiThreadedAssert put: [self configHBuildMultiThreadedAssert];
+ at: #buildMultiThreadedDebug put: [self configHBuildMultiThreadedDebug ];
+ at: #buildNone put:[self configHNoBuildType].
+
+
+ ^(d at: ( aBuildType)) value
+
+
+
+ !
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuild (in category 'cmake config build type ') -----
+ preferredIncludesBuild
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+
+ !
- preferredIncludesBuild
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildAssert (in category 'cmake config build type ') -----
preferredIncludesBuildAssert
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildAssertITimerHeartbeat (in category 'cmake config build type ') -----
preferredIncludesBuildAssertITimerHeartbeat
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildDebug (in category 'cmake config build type ') -----
preferredIncludesBuildDebug
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildDebugITimerHeartbeat (in category 'cmake config build type ') -----
preferredIncludesBuildDebugITimerHeartbeat
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildITimerHeartbeat (in category 'cmake config build type ') -----
preferredIncludesBuildITimerHeartbeat
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildMultiThreaded (in category 'cmake config build type ') -----
preferredIncludesBuildMultiThreaded
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildMultiThreadedAssert (in category 'cmake config build type ') -----
preferredIncludesBuildMultiThreadedAssert
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildMultiThreadedDebug (in category 'cmake config build type ') -----
preferredIncludesBuildMultiThreadedDebug
+ "convencience method to customize for this build. default is self preferredIncludes"
+ ^self preferredIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildNone (in category 'cmake config build type ') -----
preferredIncludesBuildNone
+ "SHOULD NOT GET HERE"
+ self halt
+ !
- self required!
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuild (in category 'cmake config build type ') -----
- setupDirectoriesBuild
- self required
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuild: (in category 'cmake config build type ') -----
+ setupDirectoriesBuild: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker
+ !
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssert (in category 'cmake config build type ') -----
- setupDirectoriesBuildAssert
- self required
-
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssert: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildAssert: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker
+
+ !
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssertITimerHeartbeat (in category 'cmake config build type ') -----
- setupDirectoriesBuildAssertITimerHeartbeat
- self required
-
-
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssertITimerHeartbeat: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildAssertITimerHeartbeat: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker
+
+
+
+ !
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebug (in category 'cmake config build type ') -----
- setupDirectoriesBuildDebug
- self break
-
-
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebug: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildDebug: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker
+
+
+
+ !
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebugITimerHeartbeat (in category 'cmake config build type ') -----
- setupDirectoriesBuildDebugITimerHeartbeat
- self required.
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebugITimerHeartbeat: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildDebugITimerHeartbeat: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker
+
+ !
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildITimerHeartbeat (in category 'cmake config build type ') -----
- setupDirectoriesBuildITimerHeartbeat
-
- self required
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildITimerHeartbeat: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildITimerHeartbeat: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker!
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreaded (in category 'cmake config build type ') -----
- setupDirectoriesBuildMultiThreaded
- self required
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreaded: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildMultiThreaded: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker!
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedAssert (in category 'cmake config build type ') -----
- setupDirectoriesBuildMultiThreadedAssert
- self required
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedAssert: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildMultiThreadedAssert: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker!
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedDebug (in category 'cmake config build type ') -----
- setupDirectoriesBuildMultiThreadedDebug
- self required
- !
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedDebug: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildMultiThreadedDebug: aMaker
+ "convencience method to customize for this build. default is self setupDirectories: aMaker"
+ self setupDirectories: aMaker!
Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildNone (in category 'cmake config build type ') -----
- setupDirectoriesBuildNone
- self required!
Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildNone: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildNone: aMaker
+ "WE SHOULD NEVER GET HERE"
+ self halt.
+ !
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuild (in category 'cmake config build type ') -----
+ standardIncludesBuild
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- standardIncludesBuild
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildAssert (in category 'cmake config build type ') -----
standardIncludesBuildAssert
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildAssertITimerHeartbeat (in category 'cmake config build type ') -----
standardIncludesBuildAssertITimerHeartbeat
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildDebug (in category 'cmake config build type ') -----
standardIncludesBuildDebug
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildDebugITimerHeartbeat (in category 'cmake config build type ') -----
standardIncludesBuildDebugITimerHeartbeat
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildITimerHeartbeat (in category 'cmake config build type ') -----
standardIncludesBuildITimerHeartbeat
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildMultiThreaded (in category 'cmake config build type ') -----
standardIncludesBuildMultiThreaded
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildMultiThreadedAssert (in category 'cmake config build type ') -----
standardIncludesBuildMultiThreadedAssert
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildMultiThreadedDebug (in category 'cmake config build type ') -----
standardIncludesBuildMultiThreadedDebug
+ "convencience method to customize for this build. default is self standardIncludes"
+ ^self standardIncludes
+ !
- self required!
Item was changed:
----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildNone (in category 'cmake config build type ') -----
standardIncludesBuildNone
+ "SHOULD NOT GET HERE"
+ ^self halt
+ !
- self required!
More information about the Vm-dev
mailing list