def setDependencies( self ): if not utils.envAsBool('EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES'): self.buildDependencies['gnuwin32/wget'] = 'default' self.buildDependencies['dev-util/7zip'] = 'default' self.buildDependencies['gnuwin32/patch'] = 'default' self.buildDependencies['gnuwin32/sed'] = 'default' self.buildDependencies['dev-util/cmake'] = 'default' self.buildDependencies['dev-util/subversion'] = 'default' self.buildDependencies['dev-util/git'] = 'default' # for creating combined packages self.buildDependencies['dev-util/pexports'] = 'default' #add c++ runtime if we xcompile if emergePlatform.isCrossCompilingEnabled(): self.dependencies['win32libs-bin/runtime-ce'] = 'default' if not utils.envAsBool('EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES'): if os.getenv( "SVN_SSH" ) == "plink" or \ os.getenv( "GIT_SSH" ) == "plink": self.buildDependencies['dev-util/putty'] = 'default' if compiler.isMinGW(): if compiler.isMinGW_W64(): self.buildDependencies['dev-util/mingw-w64'] = 'default' elif emergePlatform.buildArchitecture() == 'arm-wince': self.buildDependencies['dev-util/cegcc-arm-wince'] = 'default' else: if compiler.isMinGW32(): self.buildDependencies['dev-util/mingw4'] = 'default' else: self.buildDependencies['dev-util/mingw-w32'] = 'default' if os.getenv( "EMERGE_MAKE_PROGRAM" ) != "": self.buildDependencies['dev-util/jom'] = 'default'
def setTargets( self ): if emergePlatform.buildArchitecture() == 'x64': self.targets['1.1.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.1.0-win64.zip" else: self.targets['1.1.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.1.0-win32.zip" self.shortDescription = "The Yasm Modular Assembler Project" self.defaultTarget = '1.1.0'
def setTargets( self ): arch = "x86" if emergePlatform.buildArchitecture() == "x64": arch = "x64" self.targets['2.2'] = 'http://www.dependencywalker.com/depends22_'+arch+'.zip' self.defaultTarget = '2.2' # the zip file does not have a bin dir, so we have to create it # This attribute is in prelimary state self.targetInstallPath['2.2'] = "bin"
def setTargets( self ): arch = 'win32' if emergePlatform.buildArchitecture() == 'x64': arch = 'win64' self.targets[ '20100330' ] = 'http://downloads.sourceforge.net/project/virtuoso/virtuoso/6.1.1/vos6-' + arch + '-20100330.zip' self.targetInstSrc[ '20100330' ] = "virtuoso-opensource" self.targetDigests['20100330'] = 'f93f7606a636beefa4c669e8fc5d0100217d85c4' self.shortDescription = "a middleware and database engine hybrid for RDBMS, ORDBMS, virtual database, RDF, XML, free-text, web application server and file server functionality" self.defaultTarget = '20100330'
def compile( self ): os.chdir( self.sourceDir() ) cmd = "" if self.isTargetBuild(): """WinCE cross-building environment setup""" config = "VC-CE" os.environ["WCECOMPAT"] = self.mergeDestinationDir() os.environ["TARGETCPU"] = self.buildArchitecture() os.environ["PLATFORM"] = self.buildPlatform() if self.buildPlatform() == "WM50": os.environ["OSVERSION"] = "WCE501" elif self.buildPlatform() == "WM60" or self.buildPlatform() == "WM65": os.environ["OSVERSION"] = "WCE502" elif emergePlatform.buildArchitecture() == "x64": config = "VC-WIN64A" else: config = "VC-WIN32" if not self.system( "perl Configure %s" % config, "configure" ): return False if emergePlatform.buildArchitecture() == "x64": if not self.system( "ms\do_win64a.bat", "configure" ): return False else: if not self.system( "ms\do_ms.bat", "configure" ): return False if self.isTargetBuild(): self.setupTargetToolchain() # Set the include path for the wcecompat files (e.g. errno.h). Setting it through # the Configure script generates errors due to the the backslashes in the path wcecompatincdir = os.path.join( os.path.join( self.mergeDestinationDir(), "include" ), "wcecompat" ) os.putenv( "INCLUDE", wcecompatincdir + ";" + os.getenv("INCLUDE") ) cmd = r"nmake -f ms\ce.mak" else: if self.staticBuild: cmd = r"nmake -f ms\nt.mak" else: cmd = r"nmake -f ms\ntdll.mak" return self.system( cmd )
def setTargets( self ): self.baseURL = "http://downloads.mysql.com/archives/mysql-5.1/" if( emergePlatform.buildArchitecture() == 'x64' ): self.targets[ '5.1.56'] = self.baseURL+"mysql-noinstall-5.1.56-winx64.zip" self.targetInstSrc[ '5.1.56' ] = "mysql-5.1.56-winx64" else: self.targets[ '5.1.56'] = self.baseURL+"mysql-noinstall-5.1.56-win32.zip" self.targetInstSrc[ '5.1.56' ] = "mysql-5.1.56-win32" self.targetDigests['5.1.56'] = 'a4bbe414bdcc76aaef7e46b40d3a6da16a91f592' self.shortDescription = "MySql database server and embedded library" self.defaultTarget = '5.1.56'
def setTargets( self ): for ver in [ '0.9.8k' , '0.9.8m' ,'1.0.0', '1.0.0a', '1.0.0b', '1.0.0c' ]: self.targets[ ver ] = 'http://www.openssl.org/source/openssl-' + ver + '.tar.gz' self.targetInstSrc[ ver ] = 'openssl-' + ver if ver != '1.0.0a': self.patchToApply[ ver ] = ('openssl-'+ver+'.diff', 1) self.targetDigestUrls[ ver ] = 'http://www.openssl.org/source/openssl-' + ver + '.tar.gz.sha1' self.targets[ '1.0.1-snapshot' ] = 'ftp://ftp.openssl.org/snapshot/openssl-1.0.1-stable-SNAP-20101028.tar.gz' self.shortDescription = "The OpenSSL runtime environment" if emergePlatform.isCrossCompilingEnabled(): self.defaultTarget = '1.0.0' else: self.defaultTarget = '1.0.0b' if compiler.isMinGW() and emergePlatform.buildArchitecture() == "x64": self.patchToApply[ '1.0.0' ] = ('openssl-1.0.0a-mingw64-asm.diff', 1) self.patchToApply[ '1.0.0a' ] = ('openssl-1.0.0a-mingw64-asm.diff', 1) self.patchToApply[ '1.0.0b' ] = ('openssl-1.0.0a-mingw64-asm.diff', 1)
def setTargets( self ): self.targets['5.8.8'] = "http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.822-MSWin32-x86-280952.zip" self.targetMergeSourcePath['5.8.8'] = "ActivePerl-5.8.8.822-MSWin32-x86-280952\\perl" if emergePlatform.buildArchitecture() == 'x64': self.targets['5.10.1'] = "http://downloads.activestate.com/ActivePerl/releases/5.10.1.1007/ActivePerl-5.10.1.1007-MSWin32-x64-291969.zip" self.targetDigests['5.10.1'] = 'b5e9ab83d14e1c3311e280a96d355d491d4d55f5' self.targetMergeSourcePath['5.10.1'] = "ActivePerl-5.10.1.1007-MSWin32-x64-291969\\perl" self.targets['5.12.2'] = "http://downloads.activestate.com/ActivePerl/releases/5.12.2.1203/ActivePerl-5.12.2.1203-MSWin32-x64-294165.zip" #self.targetDigests['5.12.2'] = 'b5e9ab83d14e1c3311e280a96d355d491d4d55f5' self.targetMergeSourcePath['5.12.2'] = "ActivePerl-5.12.2.1203-MSWin32-x64-294165\\perl" else: self.targets['5.10.1'] = "http://downloads.activestate.com/ActivePerl/releases/5.10.1.1007/ActivePerl-5.10.1.1007-MSWin32-x86-291969.zip" self.targetDigests['5.10.1'] = '9122a828b32d8b8499c73b61972eaec303698961' self.targetMergeSourcePath['5.10.1'] = "ActivePerl-5.10.1.1007-MSWin32-x86-291969\\perl" self.targets['5.12.2'] = "http://downloads.activestate.com/ActivePerl/releases/5.12.2.1203/ActivePerl-5.12.2.1203-MSWin32-x86-294165.zip" self.targetDigests['5.12.2'] = 'f87d1ab5867a38a46a68f82f5a35d2d2526c1420' self.targetMergeSourcePath['5.12.2'] = "ActivePerl-5.12.2.1203-MSWin32-x86-294165\\perl" self.targets['5.12.4'] = "http://downloads.activestate.com/ActivePerl/releases/5.12.4.1205/ActivePerl-5.12.4.1205-MSWin32-x86-294981.zip" self.targetDigests['5.12.4'] = '14dc84b576a1004d8c71ca3309534c7952215182' self.targetMergeSourcePath['5.12.4'] = "ActivePerl-5.12.4.1205-MSWin32-x86-294981\\perl" self.defaultTarget = '5.12.4'
def isMinGW_ARM(): return isMinGW() and emergePlatform.buildArchitecture() == 'arm-wince'
def isMinGW_W64(): return isMinGW() and emergePlatform.buildArchitecture() == "x64"
def configure( self, unused1=None, unused2=""): self.enterBuildDir() self.setPathes() xplatform = "" if self.isTargetBuild(): if self.buildPlatform() == "WM60": xplatform = "wincewm60professional-%s" % self.compiler() elif self.buildPlatform() == "WM65": xplatform = "wincewm65professional-%s" % self.compiler() elif self.buildPlatform() == "WM50": xplatform = "wincewm50pocket-%s" % self.compiler() else: exit( 1 ) os.environ[ "USERIN" ] = "y" userin = "y" incdirs = " -I \"" + os.path.join( self.dbus.installDir(), "include" ) + "\"" libdirs = " -L \"" + os.path.join( self.dbus.installDir(), "lib" ) + "\"" incdirs += " -I \"" + os.path.join( self.openssl.installDir(), "include" ) + "\"" libdirs += " -L \"" + os.path.join( self.openssl.installDir(), "lib" ) + "\"" if self.isTargetBuild(): incdirs += " -I \"" + os.path.join( self.wcecompat.installDir(), "include" ) + "\"" libdirs += " -L \"" + os.path.join( self.wcecompat.installDir(), "lib" ) + "\"" if not emergePlatform.isCrossCompilingEnabled(): incdirs += " -I \"" + os.path.join( self.mysql_server.installDir(), "include" ) + "\"" libdirs += " -L \"" + os.path.join( self.mysql_server.installDir(), "lib" ) + "\"" libdirs += " -l libmysql " else: utils.copyFile( os.path.join( self.packageDir(), "sources", "qconfig-kde-wince.h" ), os.path.join( self.sourceDir(), "src", "corelib" , "global", "qconfig-kde-wince.h" ) ) utils.copyFile( os.path.join( self.packageDir(), "sources", "new.cpp" ), os.path.join( self.sourceDir(), "src", "corelib" , "global", "new.cpp" ) ) utils.copyFile( os.path.join( self.packageDir(), "sources", "gpglogger_wince.cpp" ), os.path.join( self.sourceDir(), "src", "corelib" , "global", "gpglogger_wince.cpp" ) ) utils.copyFile( os.path.join( self.packageDir(), "sources", "gpglogger_wince.h" ), os.path.join( self.sourceDir(), "src", "corelib" , "global", "gpglogger_wince.h" ) ) configure = os.path.join( self.sourceDir(), "configure.exe" ).replace( "/", "\\" ) command = r"echo %s | %s -opensource -prefix %s -platform %s " % ( userin, configure, self.installDir(), self.platform ) if emergePlatform.isCrossCompilingEnabled(): if self.isTargetBuild(): command += "-xplatform %s -qconfig kde-wince " % xplatform command += "-no-exceptions -no-stl -no-rtti " if self.isHostBuild(): command += "-no-xmlpatterns -no-declarative -no-opengl " command += "-no-qt3support -no-multimedia -no-scripttools -no-accessibility -no-libmng -no-libtiff -no-gif -no-webkit " if not emergePlatform.isCrossCompilingEnabled(): # non-cc builds only command += "-plugin-sql-odbc -plugin-sql-mysql " command += "-qt-style-windowsxp -qt-style-windowsvista " command += "-qt-libpng -qt-libjpeg -qt-libtiff " # WebKit won't link properly with LTCG in a 32-bit MSVC environment if emergePlatform.buildArchitecture() == "x86" and compiler.isMSVC2008(): command += "-no-ltcg " else: command += "-ltcg " # all builds command += "-no-phonon " command += "-qdbus -dbus-linked -openssl-linked " command += "-fast -no-vcproj -no-dsp " command += "-nomake demos -nomake examples " command += "%s %s" % ( incdirs, libdirs ) if self.buildType() == "Debug": command += " -debug " else: command += " -release " print "command: ", command utils.system( command ) return True