[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.126.mcz
gettimothy
gettimothy at zoho.com
Mon Jul 4 12:21:50 UTC 2016
Hi David Hi Holger
On thinking about this, you guys are probably right.
Unfortunately, I have no interest in that project (I would like to move on to other things)
If you take the output from just one configuration like....
SqueakLinux64x86w32CompatBuilder
configureA: #Linux64x86w32BitSqueakCogSpurConfig forBuildType:#build;
enableMessageTracking: false;
generateByTemplate.
It will generate cmake.build.linux64x86w32BitCompatibility directory structure (in the oscogvm directory under your image directory)
If you then run cmake . it will generate the cmake output.
That is essentially Ian's work generated from CMakeVMMakerSqueak.
Here is my reasoning.
We want source control of the CMake artefacts
We want a quick way to create additional build trees .
With the move to GIT, the source control and distribution problems are resolved with git's branch merge etc. It is duplication to do that in Squeak (which is what the CMakeVMMakerSqueak project is)
It may be quicker to to create new CMake artefacts in plain scripts.
I think in terms of time, the experiment would prove useful to see if that is the better model for building out the CMake scripts.
If not, I can continue the work on CMakeVMMakerSqueak.
There are a couple more technical issues to fix (how plugins/cmake interact ...?)
The CHIEF issue is ease of use and logic to the setup of new configurations for different platforms.
I am currently working on a Terse Guide for setting up a configuration "quickly" and as you can see, there is significant work to it (as Holger mentioned):
NOT DONE
setGlobalOptions
IDENTIFY CONFIGURATIONS CATEGORY
CMakeVMMakerSqueak-Linux64x64
IDENTIFY ABSTRACT BASE CLASS
Linux64x64Config isAbstractBaseClass
IDENTIFY BUILDER
SqueakLinux64x64Builder configurationsCategory
SqueakLinux64x64Builder availableBuildConfigurations
SqueakLinux64x64Builder unAvailableBuildConfigurations
CREATE AND CONFIGURE THE CONFIGURATION FOR BUILDER INTERACTION
(must verify/do)
Linux64x64Config subclass: #Linux64x64SqueakCogSpurConfig
Linux64x64SqueakCogSpurConfig excludeFromBuild ^false
Linux64x64SqueakCogSpurConfig class isAbstractBaseClass ^false
Linux64x64SqueakCogSpurConfig >> availableBuildTypes
SET UP DIRECTORY PATHS FOR CMAKE OUTPUT
(must verify/do)
Linux64x64SqueakCogSpurConfig dirBuildPlatform ^self dirLinux64x64
Linux64x64SqueakCogSpurConfig >>dirSource ^self spur64src
Linux64x64SqueakCogSpurConfig >> dirBuildLanguageVMMM ^self squeakCogSpur
Linux64x64Config >> coreSourcesBuild
NOT DONE
setGlobalOptions
IDENTIFY CONFIGURATIONS CATEGORY
CMakeVMMakerSqueak-Linux64x64
IDENTIFY ABSTRACT BASE CLASS
Linux64x64Config isAbstractBaseClass
IDENTIFY BUILDER
SqueakLinux64x64Builder configurationsCategory
SqueakLinux64x64Builder availableBuildConfigurations
SqueakLinux64x64Builder unAvailableBuildConfigurations
CREATE AND CONFIGURE THE CONFIGURATION FOR BUILDER INTERACTION
(must verify/do)
Linux64x64Config subclass: #Linux64x64SqueakCogSpurConfig
Linux64x64SqueakCogSpurConfig excludeFromBuild ^false
Linux64x64SqueakCogSpurConfig class isAbstractBaseClass ^false
Linux64x64SqueakCogSpurConfig >> availableBuildTypes
SET UP DIRECTORY PATHS FOR CMAKE OUTPUT
(must verify/do)
Linux64x64SqueakCogSpurConfig dirBuildPlatform ^self dirLinux64x64
Linux64x64SqueakCogSpurConfig >>dirSource ^self spur64src
Linux64x64SqueakCogSpurConfig >> dirBuildLanguageVMMM ^self squeakCogSpur
Linux64x64Config >> coreSourcesBuild
SystemNavigation browseAllImplementorsOf: #cmakeWriteDirectoriesDotCmake:
SET VM TYPE AND SOURCE INFORMATION
(must verify/do)
Linux64x64SqueakCogSpurConfig >> setPlatformSourcesBuild:aMaker
Linux64x64SqueakCogSpurConfig >> cogitClass ^ StackToRegisterMappingCogit
Linux64x64SqueakCogSpurConfig >> interpreterClass ^ CoInterpreter
CMAKE GLOBAL OPTIONS AND NON-STANDARD LOCATIONS HINTS , OS SPECIFIC IDIOMS
(possible overrides)
x-CPlatformConfigForSqueak >> setGlobalOptionsBuild: aMaker
x-SqueakUnixConfig >>cmakePrefixPathBuild
x-SqueakUnixConfig >>cmakeIncludePathBuild
x-SqueakUnixConfig >>cmakeLibraryPathBuild
x-SqueakUnixConfig>>cmakeIncludeModulesBuild
x-SqueakUnixConfig >>extraVMSettingsBuild: aMaker
SET COMPILER FLAGS, COMPILER DEFINITIONS, LINKER FLAGS, LIBRARIES (WHAT ELSE?)
(must verify/do)
Linux64x64SqueakCogSpurConfig >> compilerFlagsBuild
Linux64x64SqueakCogSpurConfig >> compilerDefinitionsBuild
(possible overrides)
Linux64x64SqueakCogSpurConfig >> externalLibsBuild ^self externalLibraries asOrderedCollection.
Linux64x64Config >> externalLibraries (note, this is the Abstract base class, override if you wish)
Linux64x64Config >> linkerFlagsBuild (note this is abstract base class, override if you wish)
SqueakUnixConfig>>standardIncludesBuild
Linux64x64Config >> preferredIncludesBuild
INCLUDE OPTIONAL CMAKE MODULES
SystemNavigation browseAllImplementorsOf: #cmakeWriteDirectoriesDotCmake:
SET VM TYPE AND SOURCE INFORMATION
(must verify/do)
Linux64x64SqueakCogSpurConfig >> setPlatformSourcesBuild:aMaker
Linux64x64SqueakCogSpurConfig >> cogitClass ^ StackToRegisterMappingCogit
Linux64x64SqueakCogSpurConfig >> interpreterClass ^ CoInterpreter
CMAKE GLOBAL OPTIONS AND NON-STANDARD LOCATIONS HINTS , OS SPECIFIC IDIOMS
(possible overrides)
x-CPlatformConfigForSqueak >> setGlobalOptionsBuild: aMaker
x-SqueakUnixConfig >>cmakePrefixPathBuild
x-SqueakUnixConfig >>cmakeIncludePathBuild
x-SqueakUnixConfig >>cmakeLibraryPathBuild
x-SqueakUnixConfig>>cmakeIncludeModulesBuild
x-SqueakUnixConfig >>extraVMSettingsBuild: aMaker
SET COMPILER FLAGS, COMPILER DEFINITIONS, LINKER FLAGS, LIBRARIES (WHAT ELSE?)
(must verify/do)
Linux64x64SqueakCogSpurConfig >> compilerFlagsBuild
Linux64x64SqueakCogSpurConfig >> compilerDefinitionsBuild
(possible overrides)
Linux64x64SqueakCogSpurConfig >> externalLibsBuild ^self externalLibraries asOrderedCollection.
Linux64x64Config >> externalLibraries (note, this is the Abstract base class, override if you wish)
Linux64x64Config >> linkerFlagsBuild (note this is abstract base class, override if you wish)
SqueakUnixConfig>>standardIncludesBuild
Linux64x64Config >> preferredIncludesBuild
INCLUDE OPTIONAL CMAKE MODULES
So, I have to ask myself---what type of work makes better sense and includes less work? Directly hacking the CMakeLists.txt themselves? or the above "terse guide"?
Thoughts?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160704/5e9a90bd/attachment.htm
More information about the Vm-dev
mailing list