[Vm-dev] VM Maker: CMakeVMMaker-EstebanLorenzano.183.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Oct 23 16:44:21 UTC 2012


Esteban Lorenzano uploaded a new version of CMakeVMMaker to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.183.mcz

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

Name: CMakeVMMaker-EstebanLorenzano.183
Author: EstebanLorenzano
Time: 23 October 2012, 6:44:06.075 pm
UUID: 441cb284-f69f-4186-ab8e-15645689e2b9
Ancestors: CMakeVMMaker-EstebanLorenzano.182, CMakeVMMaker-IgorStasenko.182

- merged with Igors

=============== Diff against CMakeVMMaker-EstebanLorenzano.182 ===============

Item was changed:
  ----- Method: CMCairo>>archiveMD5Sum (in category 'package properties') -----
  archiveMD5Sum
  
+ 	^ '645b7c1421ed52260d0853e3215c1d8f'!
- 	^ '87649eb75789739d517c743e94879e51'!

Item was changed:
  ----- Method: CMCairo>>build (in category 'generating actions') -----
  build
- 
  	gen 
  		puts:
  '
  add_custom_command(OUTPUT "${libcairoInstalled}"
  	COMMAND ./configure --prefix=''${installPrefix}'' PKG_CONFIG="${pkgconfigPath}"
  		PKG_CONFIG_PATH="${installPrefix}/lib/pkgconfig" CFLAGS=''-arch i386'' LDFLAGS=''-arch i386''
  		--disable-silent-rules --disable-xlib --disable-dependency-tracking
  	COMMAND make
  	COMMAND make install
  	WORKING_DIRECTORY "${libSourcesDir}"
  	DEPENDS "${unpackTarget}" pkg-config freetype2 libpng pixman
  	COMMENT "Building ${libName}"
  )
  '
  !

Item was changed:
  ----- Method: CMCairo>>copyArtefacts (in category 'generating actions') -----
  copyArtefacts
  
+ 	self 
+ 		copy: '${libcairoInstalled}' 
+ 		to: '${externalModulesDir}/${libraryFileName}'
+ !
- 	gen puts:
- 'add_custom_command(
- 	OUTPUT "${externalModulesDir}/${libraryFileName}"
- 	COMMAND cp ${libcairoInstalled} ${externalModulesDir}/${libraryFileName}
- 	DEPENDS "${libcairoInstalled}"
- )'!

Item was changed:
  ----- Method: CMCairo>>defineAsTarget (in category 'generating actions') -----
  defineAsTarget
  	
  	gen puts:
  	'add_custom_target(${libName}
+ 		DEPENDS pixman freetype2 "${externalModulesDir}/${libraryFileName}" 
- 		DEPENDS "${externalModulesDir}/${libraryFileName}"
  	)'!

Item was changed:
  ----- Method: CMCairo>>downloadURL (in category 'package properties') -----
  downloadURL
  
+ 	^ 'http://www.cairographics.org/releases/cairo-1.12.6.tar.xz'!
- 	^ 'http://www.cairographics.org/releases/cairo-1.12.2.tar.xz'!

Item was changed:
  ----- Method: CMCairo>>unpackedDirName (in category 'package properties') -----
  unpackedDirName
+ 	^ 'cairo-1.12.6'!
- 	^ 'cairo-1.12.2'!

Item was changed:
  ----- Method: CMCairoBundle class>>supports: (in category 'as yet unclassified') -----
  supports: aConfig
  	"right now, Mac only"
+ 	^  aConfig platformName  = 'iOS' !
- 	^  aConfig platformName  = 'iOS'!

Item was added:
+ ----- Method: CMCairoBundle>>macOSXBuildFlags (in category 'as yet unclassified') -----
+ macOSXBuildFlags
+ 	^ 'CFLAGS=''-m32 -march=pentium4'' LDFLAGS=''-m32 -march=pentium4"'!

Item was added:
+ ----- Method: CMCairoBundle>>win32BuildFlags (in category 'as yet unclassified') -----
+ win32BuildFlags
+ 	^ 'CFLAGS=''-m32 -march=pentium4'' LDFLAGS=''-m32 -march=pentium4"'!

Item was changed:
  ----- Method: CMFreetype2>>copyArtefacts (in category 'generating actions') -----
  copyArtefacts
  
+ 	self 
+ 		copy: '${ft2libInstalled}' 
+ 		to: '${externalModulesDir}/${libraryFileName}'.!
- 	gen puts:
- 'add_custom_command(
- 	OUTPUT "${externalModulesDir}/${libraryFileName}"
- 	COMMAND cp "${ft2libInstalled}" "${externalModulesDir}/${libraryFileName}"
- 	DEPENDS "${ft2libInstalled}"
- )'!

Item was added:
+ ----- Method: CMIOSFreetype2 class>>supports: (in category 'as yet unclassified') -----
+ supports: aConfig 
+ 	"just for iPhone"
+ 	^ aConfig class = StackIPhoneConfig!

Item was changed:
  ----- Method: CMLibPng>>defineAsTarget (in category 'generating actions') -----
  defineAsTarget
  	
  	gen puts:
  	'add_custom_target(${libName}
+ 		DEPENDS zlib "${externalModulesDir}/${libraryFileName}"
- 		DEPENDS "${externalModulesDir}/${libraryFileName}"
  	)'!

Item was removed:
- ----- Method: CMOSXFreetype2 class>>supports: (in category 'as yet unclassified') -----
- supports: aConfig 
- 	^self = aConfig freetypeLibClass!

Item was added:
+ CMThirdpartyLibrary subclass: #CMOpenSSL
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!

Item was added:
+ ----- Method: CMOpenSSL class>>canonicalName (in category 'as yet unclassified') -----
+ canonicalName
+ 	^ 'openssl'!

Item was changed:
  ----- Method: CMPixman>>defineAsTarget (in category 'generating actions') -----
  defineAsTarget
  	
  	gen puts:
  	'add_custom_target(${libName}
+ 		DEPENDS libpng "${externalModulesDir}/${libraryFileName}" 
- 		DEPENDS "${externalModulesDir}/${libraryFileName}"
  	)'!

Item was changed:
  ----- Method: CMPkgConfig>>defineAsTarget (in category 'generating actions') -----
  defineAsTarget
  	
  	gen puts: '
  add_custom_target(${libName} 
  	DEPENDS "${pkgConfigBinary}"
  	)
  '
  
  !

Item was added:
+ ----- Method: CMThirdpartyLibrary>>copy:to: (in category 'generating actions') -----
+ copy: src to: dest
+ 
+ 	| str |
+ 
+ 	
+ 	str := 'add_custom_command( OUTPUT "{2}"
+ 	COMMAND cp "{1}" "{2}"
+ 	DEPENDS "{1}"
+ 	)' format: {src. dest }.
+ 	
+ 	gen puts: str!

Item was changed:
  ----- Method: CMThirdpartyLibrary>>generateFor: (in category 'generating cmake file') -----
  generateFor: aVMGenerator
  
+ 	| libDir stream contents |
- 	| libDir stream |
  	
  	vmGen := aVMGenerator.
  	
  	gen := CMakeGenerator new
  		output: (String new writeStream).
  	
  	libDir := (aVMGenerator thirdpartyDir / self canonicalName) assureExistence.
  
+ 	stream := String new writeStream.
+ 	
- 	stream := libDir forceNewFileNamed: gen outputFileName.
- 	stream ifNil: [ self error: 'Cannot write ',  gen outputFileName , 'to: ', libDir fullName ].
- 
  	self generate.
  
+ 	stream nextPutAll: (vmGen config fixLineEndsOf: gen output contents).
- 	stream nextPutAll: (vmGen config fixLineEndsOf: gen output contents); close.
  
+ 	contents := stream contents. 
+ 	
+ 	(self isFile: (libDir fullNameFor: gen outputFileName)  hasContents: contents) ifFalse: [
+ 		"contents changed, update the file. Because fucking cmake will force rebuild everything if we change its modification date
+ 		without changing its contents"
+ 		(libDir forceNewFileNamed: gen outputFileName) nextPutAll: contents; close.
+ 		].
+ 	
+ 
  	vmGen addSubdirectory:  vmGen thirdpartyDirName , '/' , self canonicalName.
  	self defineGlobalTargets.
  	!

Item was added:
+ ----- Method: CMThirdpartyLibrary>>isFile:hasContents: (in category 'generating cmake file') -----
+ isFile: aFileName hasContents: aString
+ 
+ 	| newContents old |
+ 	
+ 	newContents := false.
+ 	
+ 	old := FileStream oldFileOrNoneNamed: aFileName.
+ 	
+ 	old ifNil: [ ^ false ].
+ 	
+ 	^ [ old contents = aString ] ensure: [ old close ]!

Item was added:
+ CMCairo subclass: #CMWin32Cairo
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!

Item was added:
+ ----- Method: CMWin32Cairo class>>supports: (in category 'as yet unclassified') -----
+ supports: aConfig
+ 	^  aConfig platformName  = 'win32' !

Item was added:
+ ----- Method: CMWin32Cairo>>build (in category 'as yet unclassified') -----
+ build
+ " Note: echo  #define _SSIZE_T_DEFINED 1 >> config.h
+ there just for a workaround of bug in cairo,
+ which fails the build it when building some unrelared utils. It does not affects library build, but i don't know how to tell it to not bother
+ building everything but just library
+ "
+ 
+ 
+ 	gen 
+ 		puts:
+ '
+ add_custom_command(OUTPUT "${libcairoInstalled}"
+ 	COMMAND ./configure --prefix=''${installPrefix}'' PKG_CONFIG="${pkgconfigPath}"
+ 		PKG_CONFIG_PATH="${installPrefix}/lib/pkgconfig" CFLAGS="-m32 -march=pentium4 -I${installPrefix}/include" LDFLAGS="-m32 -march=pentium4 -L${installPrefix}/lib"
+ 		--disable-silent-rules --disable-xlib --disable-dependency-tracking
+ 
+ 	COMMAND echo "#define _SSIZE_T_DEFINED 1" >> config.h
+ 	COMMAND make
+ 	COMMAND make install
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${unpackTarget}" pkg-config freetype2 libpng pixman
+ 	COMMENT "Building ${libName}"
+ )
+ '
+ !

Item was added:
+ ----- Method: CMWin32Cairo>>libraryFileName (in category 'as yet unclassified') -----
+ libraryFileName
+ 
+ 	^ 'libcairo-2.dll'!

Item was added:
+ ----- Method: CMWin32Cairo>>setVariables (in category 'as yet unclassified') -----
+ setVariables
+ 	super setVariables.
+ 	gen 
+ 		set: #libraryFileName to: self libraryFileName;
+ 		set: #libcairoInstalled toString: '${installPrefix}/bin/${libraryFileName}'.
+ 		!

Item was added:
+ CMLibPng subclass: #CMWin32LibPng
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!

Item was added:
+ ----- Method: CMWin32LibPng class>>supports: (in category 'as yet unclassified') -----
+ supports: aConfig
+ 	^  aConfig platformName  = 'win32' !

Item was added:
+ ----- Method: CMWin32LibPng>>build (in category 'as yet unclassified') -----
+ build
+ 
+ "LIBS=-L${installPrefix}/lib"
+ 	gen 
+ 		puts:
+ '
+ add_custom_command(OUTPUT "${libpngInstalled}"
+ 	COMMAND ./configure --prefix=''${installPrefix}'' CFLAGS="-m32 -march=pentium4 -I${installPrefix}/include" CPPFLAGS="-m32 -I${installPrefix}/include" LDFLAGS="-m32 -march=pentium4 -L${installPrefix}/lib" 
+ 	COMMAND make
+ 	COMMAND make install
+ 	COMMAND cp "${installPrefix}/lib/libpng.dll.a" "${installPrefix}/lib/libpng12.dll.a"
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${unpackTarget}" pkg-config
+ 	COMMENT "Building ${libName}"
+ )
+ '
+ !

Item was added:
+ ----- Method: CMWin32LibPng>>dependencies (in category 'as yet unclassified') -----
+ dependencies
+ 	^ #( 'pkg-config' 'zlib')!

Item was added:
+ ----- Method: CMWin32LibPng>>downloadURL (in category 'as yet unclassified') -----
+ downloadURL
+ 	^ 'ftp://ftp.simplesystems.org/pub/libpng/png/src/history/libpng12/libpng-1.2.49.tar.gz'
+ !

Item was added:
+ ----- Method: CMWin32LibPng>>libraryFileName (in category 'as yet unclassified') -----
+ libraryFileName
+ 
+ 	^ 'libpng-3.dll'!

Item was added:
+ ----- Method: CMWin32LibPng>>setVariables (in category 'as yet unclassified') -----
+ setVariables
+ 	super setVariables.
+ 	
+ "add include path"
+ 	gen 
+ 		set: #libraryFileName to: self libraryFileName;
+ 		set: #libpngInstalled toString: '${installPrefix}/bin/${libraryFileName}'.
+ 		!

Item was added:
+ CMOpenSSL subclass: #CMWin32OpenSSL
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!

Item was added:
+ ----- Method: CMWin32OpenSSL class>>platformName (in category 'as yet unclassified') -----
+ platformName 
+ 	^'win32'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>archiveMD5Sum (in category 'as yet unclassified') -----
+ archiveMD5Sum
+ 	"answer the MD5 checksum (in string) for downloaded library archive 
+ 	(to check that downloaded file is not corrupt).
+ 	
+ 	You can take this sum by issuing:
+ 	  md5 filename
+ 	from command line
+ 	"
+ 	^ 'ae412727c8c15b67880aef7bd2999b2e'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>build (in category 'as yet unclassified') -----
+ build
+ 
+ 	gen 
+ 		puts:
+ '
+ add_custom_command(OUTPUT "${libSourcesDir}/Makefile"
+ 	COMMAND ./config shared --prefix=''${installPrefix}'' 
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${unpackTarget}"
+ )
+ 
+ add_custom_command(OUTPUT "${libInstalled}"
+ 	COMMAND make
+ 	COMMAND make install
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${libSourcesDir}/Makefile"
+ 	COMMENT "Building ${libName}"
+ )
+ '
+ !

Item was added:
+ ----- Method: CMWin32OpenSSL>>configurationFlags (in category 'as yet unclassified') -----
+ configurationFlags
+ 	^ 'shared'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>copyArtefacts (in category 'as yet unclassified') -----
+ copyArtefacts 
+ 
+ 	self copy: '${installPrefix}/bin/libeay32.dll' to: '${externalModulesDir}/libeay32.dll'.
+ 	self copy: '${installPrefix}/bin/ssleay32.dll' to: '${externalModulesDir}/ssleay32.dll'.
+ "	self copy: '${installPrefix}/lib/libssl.dll.a' to: '${externalModulesDir}/libssl.dll.a'.
+ 	self copy: '${installPrefix}/lib/libcrypto.dll.a' to: '${externalModulesDir}/libcrypto.dll.a'.
+ "
+ "
+ 'libcrypto.dll.a' 'libssl.dll.a'.
+ "!

Item was added:
+ ----- Method: CMWin32OpenSSL>>defineAsTarget (in category 'as yet unclassified') -----
+ defineAsTarget 
+ 	
+ 	gen puts:
+ 	'add_custom_target(', self buildTarget , '
+ 		DEPENDS 
+ 		"${externalModulesDir}/libeay32.dll"
+ 		"${externalModulesDir}/ssleay32.dll"
+ 	)'
+ 	
+ 		"${externalModulesDir}/${libraryFileName}"
+ !

Item was added:
+ ----- Method: CMWin32OpenSSL>>defineGlobalTargets (in category 'as yet unclassified') -----
+ defineGlobalTargets 
+ 
+ !

Item was added:
+ ----- Method: CMWin32OpenSSL>>downloadURL (in category 'as yet unclassified') -----
+ downloadURL 
+ 	^'http://www.openssl.org/source/openssl-1.0.1c.tar.gz'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>includeDir (in category 'as yet unclassified') -----
+ includeDir
+ 
+ 	^ '"${thirdpartyDir}/out/include"'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>libraryFileName (in category 'as yet unclassified') -----
+ libraryFileName
+ 	^ 'libssl.dll.a'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>setVariables (in category 'as yet unclassified') -----
+ setVariables 
+ 	super setVariables.
+ 	
+ 	gen
+ 		set: #libraryFileName to: self libraryFileName;
+ 		set: #libInstalled to: '${installPrefix}/lib/${libraryFileName}'!

Item was added:
+ ----- Method: CMWin32OpenSSL>>unpackedDirName (in category 'as yet unclassified') -----
+ unpackedDirName
+ 	^ 'openssl-1.0.1c'!

Item was added:
+ CMPixman subclass: #CMWin32Pixman
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!

Item was added:
+ ----- Method: CMWin32Pixman class>>supports: (in category 'as yet unclassified') -----
+ supports: aConfig
+ 	^  aConfig platformName  = 'win32' !

Item was added:
+ ----- Method: CMWin32Pixman>>build (in category 'as yet unclassified') -----
+ build
+ 
+ 	gen 
+ 		puts:
+ '
+ add_custom_command(OUTPUT "${libpixmanInstalled}"
+ 	COMMAND ./configure --prefix=''${installPrefix}'' PKG_CONFIG="${pkgconfigPath}"
+ 		PKG_CONFIG_PATH="${installPrefix}/lib/pkgconfig" CFLAGS="-m32 -march=pentium4 -I${installPrefix}/include" LDFLAGS="-m32 -march=pentium4" LIBS="-L${installPrefix}/lib"
+ 	COMMAND make
+ 	COMMAND make install
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${unpackTarget}" pkg-config
+ 	COMMENT "Building ${libName}"
+ )
+ '
+ !

Item was added:
+ ----- Method: CMWin32Pixman>>libraryFileName (in category 'as yet unclassified') -----
+ libraryFileName 
+ 	^ 'libpixman-1-0.dll'!

Item was added:
+ ----- Method: CMWin32Pixman>>setVariables (in category 'as yet unclassified') -----
+ setVariables
+ 	super setVariables.
+ 	
+ "add include path"
+ 	gen 
+ 		set: #libraryFileName to: self libraryFileName;
+ 		set: #libpixmanInstalled toString: '${installPrefix}/bin/${libraryFileName}'.
+ 		!

Item was added:
+ CMPkgConfig subclass: #CMWin32PkgConfig
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!
+ 
+ !CMWin32PkgConfig commentStamp: '<historical>' prior: 0!
+ - use 0.27.1 version from official source, which builds on windows
+ 
+ http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.1.tar.gz
+ 
+ - ./configure --with-internal-glib -!

Item was added:
+ ----- Method: CMWin32PkgConfig class>>supports: (in category 'as yet unclassified') -----
+ supports: aConfig
+ 	^  aConfig platformName  = 'win32' !

Item was added:
+ ----- Method: CMWin32PkgConfig>>archiveMD5Sum (in category 'as yet unclassified') -----
+ archiveMD5Sum 
+ 	^ '5392b4e3372879c5bf856173b418d6a2'!

Item was added:
+ ----- Method: CMWin32PkgConfig>>build (in category 'as yet unclassified') -----
+ build
+ 	gen 
+ 		puts: '
+ add_custom_command(OUTPUT "${pkgConfigBinary}"
+ 	COMMAND ./configure --prefix="${installPrefix}" --with-internal-glib CFLAGS="-m32 -march=pentium4" LDFLAGS="-m32 -march=pentium4"
+ 	COMMAND make
+ 	COMMAND make install
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${unpackTarget}"
+ 	COMMENT "Building ${libName}"
+ )
+ '
+ !

Item was added:
+ ----- Method: CMWin32PkgConfig>>defineGlobalTargets (in category 'as yet unclassified') -----
+ defineGlobalTargets
+ 
+ 	"none"
+ 	vmGen
+ 		set: #installPrefix toString: '${thirdpartyDir}/out';
+ 		set: #pkgconfigPath toString: '${installPrefix}/bin/pkg-config.exe'
+ 		!

Item was added:
+ ----- Method: CMWin32PkgConfig>>downloadURL (in category 'as yet unclassified') -----
+ downloadURL 
+ 	^ 'http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.1.tar.gz'!

Item was added:
+ ----- Method: CMWin32PkgConfig>>setVariables (in category 'as yet unclassified') -----
+ setVariables
+ 
+ 	super setVariables.
+ 	
+ 	gen set: #pkgConfigBinary toString: '${installPrefix}/bin/pkg-config.exe'!

Item was added:
+ ----- Method: CMWin32PkgConfig>>unpackedDirName (in category 'as yet unclassified') -----
+ unpackedDirName
+ 
+ 	^ 'pkg-config-0.27.1'!

Item was added:
+ CMThirdpartyLibrary subclass: #CMWin32ZLib
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Libs'!

Item was added:
+ ----- Method: CMWin32ZLib class>>canonicalName (in category 'as yet unclassified') -----
+ canonicalName 
+ 	^ 'zlib'!

Item was added:
+ ----- Method: CMWin32ZLib class>>supports: (in category 'as yet unclassified') -----
+ supports: aConfig
+ 	^  aConfig platformName  = 'win32' !

Item was added:
+ ----- Method: CMWin32ZLib>>archiveMD5Sum (in category 'as yet unclassified') -----
+ archiveMD5Sum
+ 	"answer the MD5 checksum (in string) for downloaded library archive 
+ 	(to check that downloaded file is not corrupt).
+ 	
+ 	You can take this sum by issuing:
+ 	  md5 filename
+ 	from command line
+ 	"
+ 	^ '60df6a37c56e7c1366cca812414f7b85'!

Item was added:
+ ----- Method: CMWin32ZLib>>build (in category 'as yet unclassified') -----
+ build
+ 
+ '	COMMAND ./configure --prefix="${installPrefix}" --archs="-arch i386" '.
+ 	
+ 	gen 
+ 		puts: '
+ add_custom_command(OUTPUT "${libzInstalled}"
+ 	COMMAND make -fwin32/Makefile.gcc 
+ 	COMMAND make install -fwin32/Makefile.gcc prefix="${installPrefix}" INCLUDE_PATH="${installPrefix}/include" LIBRARY_PATH="${installPrefix}/lib" BINARY_PATH="${installPrefix}/bin" SHARED_MODE=1
+ 	WORKING_DIRECTORY "${libSourcesDir}"
+ 	DEPENDS "${unpackTarget}"
+ 	COMMENT "Building ${libName}"
+ )
+ '
+ !

Item was added:
+ ----- Method: CMWin32ZLib>>copyArtefacts (in category 'as yet unclassified') -----
+ copyArtefacts
+ 
+ 	self 
+ 		copy: '${libzInstalled}' 
+ 		to: '${externalModulesDir}/${libraryFileName}'
+ !

Item was added:
+ ----- Method: CMWin32ZLib>>defineAsTarget (in category 'as yet unclassified') -----
+ defineAsTarget 
+ 	
+ 	gen puts:
+ 	'add_custom_target(', self buildTarget , '
+ 		DEPENDS 
+ 		"${externalModulesDir}/${libraryFileName}"
+ 	)'
+ 	
+ 		"${externalModulesDir}/${libraryFileName}"
+ !

Item was added:
+ ----- Method: CMWin32ZLib>>defineGlobalTargets (in category 'as yet unclassified') -----
+ defineGlobalTargets 
+ !

Item was added:
+ ----- Method: CMWin32ZLib>>downloadURL (in category 'as yet unclassified') -----
+ downloadURL 
+ 	^ 'http://zlib.net/zlib-1.2.7.tar.gz'!

Item was added:
+ ----- Method: CMWin32ZLib>>libraryFileName (in category 'as yet unclassified') -----
+ libraryFileName
+ 	^ 'zlib1.dll'!

Item was added:
+ ----- Method: CMWin32ZLib>>setVariables (in category 'as yet unclassified') -----
+ setVariables
+ 	super setVariables.
+ 	gen 
+ 		set: #libraryFileName to: self libraryFileName;
+ 		set: #libzInstalled toString: '${installPrefix}/bin/${libraryFileName}'.
+ 		!

Item was added:
+ ----- Method: CMWin32ZLib>>unpackedDirName (in category 'as yet unclassified') -----
+ unpackedDirName
+ 	^ 'zlib-1.2.7'!

Item was changed:
  ----- Method: CMakePluginGenerator>>generate (in category 'code generation') -----
  generate
  
  	| name |
  	output := String new writeStream.
  
  	name := plugin moduleName.
  #(	vmGen config setGlobalOptions: self.
  	
  	self 
  		printHeader;
  		project: name;
  		"include directories generated for build"
  		include: '../directories.cmake'.
  	
  	self set: 'CMAKE_CONFIGURATION_TYPES' to: 'Release'.
  ).
  
  	self message: (internal ifTrue: [ 'Adding internal plugin: '] ifFalse: ['Adding external plugin: '])  , name.
  
  	self 
  		set: #pluginName toString: name;
  		set: #pluginSrc toString: '${srcPluginsDir}/', name;
  		set: #pluginCross toString: '${crossDir}/plugins/', name;
  		set: #pluginPlatform toString: '${targetPlatform}/plugins/', name.
  
  	"clear LINKLIBS variable"
  	self set: #LINKLIBS to: ''.		
  	
  	internal 
  		ifTrue: [ self puts: 'add_definitions(-DSQUEAK_BUILTIN_PLUGIN)'].
  	
  	self addSources: { name , '.c' } prefixed: '${pluginSrc}/'.
  
  	" default include directories for plugin "
  	self includeDirectories: '${pluginSrc} ${pluginCross} ${targetPlatform}/plugins/${pluginName}'.
  	
  	"Not needed because there are already there (inherited from main configuration)"
  	"self addDefinitions: vmGen config compilerFlags."
  
  	" perform config's configureXYZ: message to apply per-plugin custom rules, if any "
  	
  	vmGen config configurePlugin: plugin with: self.
  	
  	extraRules ifNotNil: [ extraRules value: self ].
  	
  	" generate a static lib for internal plugin, or shared for external"
  	internal ifTrue: [
  		self cmd: 'add_library' params:  name , ' STATIC ${sources}'.
  	] ifFalse: [
  		self cmd: 'add_library' params: name , ' SHARED ${sources}'.
  		
  	"	self cmd: 'set_property' params: 'TARGET ' , name , ' PROPERTY LINK_FLAGS -bundle'"
  	].
  
  	vmGen config extraPluginSettings: self.
  	
  	self isExternal ifTrue: [
  		self cmd: 'target_link_libraries'
  			params: self moduleName , ' ${LINKLIBS}'.
  		].
  	
  	" see senders of #linkFlags "
  	self 
  		cmd: 'set_property' 
  		params: 'TARGET ', name, ' PROPERTY LINK_FLAGS "${linkFlags}"'.
  	
  	"set dependencies"
+ 	self puts: 'IF (',self moduleName , '_dependencies)'.
- 	self puts: 'IF (${',self moduleName , '_dependencies})'.
  	
  	self cmd: 'add_dependencies'
  		params: name , ' ${', self moduleName , '_dependencies}'.
  	
+ 	self puts: 'ENDIF (',self moduleName , '_dependencies)'.
- 	self puts: 'ENDIF (${',self moduleName , '_dependencies})'.
  	self saveFile.!

Item was changed:
  ----- Method: CogFamilyWindowsConfig>>configureSqueakSSLPlugin: (in category 'plugin extra rules') -----
  configureSqueakSSLPlugin: maker
+ 	| lib |
- 	
  	maker addPlatformSources: #('sqUnixOpenSSL.c').
  	
+ 	lib := self addThirdpartyLibrary: 'openssl'.
- 	maker addPlatformSources: #('libcrypto.dll.a' 'libssl.dll.a').
  
+ 	maker includeDirectories: lib includeDir.
- 	maker includeDirectories: '"C:/MinGW/msys/1.0/home/sig/openssl/openssl-1.0.1c/include/"'.
  	maker linkDirectories: '${outputDir}'.
  	
  	maker addExternalLibraries: 
  		#( 
+ 			'libeay32.dll' 
- 			'libeay32.dll'
  			'ssleay32.dll'
+ 		).
+ 		
+ 	maker addDependency: lib buildTarget
+ !
- 		)!

Item was changed:
  ----- Method: CogWindowsConfig>>compilerFlags (in category 'compiler flags') -----
  compilerFlags
  	"depends on config ..."
  	^ self commonCompilerFlags, ' ' , self compilerFlagsRelease!

Item was added:
+ CogWindowsConfig subclass: #CogWindowsDebugConfig
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMaker-Windows'!

Item was added:
+ ----- Method: CogWindowsDebugConfig>>compilerFlags (in category 'as yet unclassified') -----
+ compilerFlags
+ 	"depends on config ..."
+ 	^ self commonCompilerFlags, ' ' , self compilerFlagsDebug!

Item was added:
+ ----- Method: CogWindowsDebugConfig>>setExtraTargetProperties: (in category 'as yet unclassified') -----
+ setExtraTargetProperties: maker
+ 
+ 	maker addExternalLibraries: self externalLibraries.
+ 	maker set: 'EXECUTABLE_OUTPUT_PATH' toString: '${outputDir}'.
+ 
+ !



More information about the Vm-dev mailing list