def make(self): self.enterSourceDir() _win64 = "" if compiler.isX64(): _win64 = " WIN64=" self.system("nmake -f psi\\msvc.mak" + _win64) return True
def setTargets( self ): self.vlcArch = "32" if compiler.isX64(): self.vlcArch = "64" self.vlcBaseUrl = 'http://nightlies.videolan.org/build/win'+self.vlcArch+'/last/' self.vlcTagName = '3.0.0-git' self.gitVer = self.getGitVer() self.targets[ self.vlcTagName ] = "%svlc-%s-%s-win%s.7z" % (self.vlcBaseUrl, self.vlcTagName, self.gitVer, self.vlcArch ) self.targetInstSrc[ self.vlcTagName ] = "vlc-%s-%s" % (self.vlcTagName, self.gitVer) self.patchToApply[ self.vlcTagName ] = [("vlc-2.1.5.diff" ,1)] self.targets[ self.vlcTagName +"-debug" ] = "%svlc-%s-%s-win%s-debug.7z" % (self.vlcBaseUrl, self.vlcTagName, self.gitVer, self.vlcArch ) self.targetInstSrc[ self.vlcTagName + "-debug" ] = "vlc-%s-%s" % (self.vlcTagName,self.gitVer) self.patchToApply[ self.vlcTagName + "-debug" ] = [("vlc-2.1.5.diff" ,1)] for releaseTag in [ '1.1.11','2.0.0','2.0.1','2.0.2','2.0.5','2.0.6', '2.0.8', '2.1.0','2.1.1','2.1.5', '2.2.0']: self.targets[ releaseTag ] = "http://download.videolan.org/pub/videolan/vlc/%s/win%s/vlc-%s-win%s.7z" % ( releaseTag ,self.vlcArch,releaseTag , self.vlcArch ) self.targetInstSrc[ releaseTag ] = 'vlc-' + releaseTag self.targetDigestUrls[ releaseTag ] = "http://download.videolan.org/pub/videolan/vlc/%s/win%s/vlc-%s-win%s.7z.sha1" % ( releaseTag ,self.vlcArch,releaseTag , self.vlcArch ) for releaseTag in [ '2.0.2','2.0.5','2.0.6','2.1.0','2.1.1', '2.1.5' ]: self.patchToApply[ releaseTag ] = [("vlc-%s.diff" % (releaseTag),1)] self.shortDescription = "an open-source multimedia framework" self.defaultTarget = '2.2.0'
def __makeFileGenerator(self): """return cmake related make file generator""" if self.supportsNinja and emergeSettings.getboolean( "Compile", "UseNinja", False): return "Ninja" if compiler.isMSVC2015(): if self.subinfo.options.cmake.useIDE or self.subinfo.options.cmake.openIDE: return "Visual Studio 14 2015" + " Win64" if compiler.isX64( ) else "" else: return "NMake Makefiles" if compiler.isMSVC2010(): if self.subinfo.options.cmake.useIDE or self.subinfo.options.cmake.openIDE: return "Visual Studio 10" else: return "NMake Makefiles" elif compiler.isMSVC2008(): if self.subinfo.options.cmake.useIDE or self.subinfo.options.cmake.openIDE: return "Visual Studio 9 2008" else: return "NMake Makefiles" elif compiler.isMSVC() or compiler.isIntel(): return "NMake Makefiles" elif compiler.isMinGW(): return "MinGW Makefiles" else: EmergeDebug.die("unknown %s compiler" % self.compiler())
def __makeFileGenerator(self): """return cmake related make file generator""" if self.supportsNinja and emergeSettings.getboolean("Compile","UseNinja", False): return "Ninja" if compiler.isMSVC2015(): if self.subinfo.options.cmake.useIDE or self.subinfo.options.cmake.openIDE: return "Visual Studio 14 2015" + " Win64" if compiler.isX64() else "" else: return "NMake Makefiles" if compiler.isMSVC2010(): if self.subinfo.options.cmake.useIDE or self.subinfo.options.cmake.openIDE: return "Visual Studio 10" else: return "NMake Makefiles" elif compiler.isMSVC2008(): if self.subinfo.options.cmake.useIDE or self.subinfo.options.cmake.openIDE: return "Visual Studio 9 2008" else: return "NMake Makefiles" elif compiler.isMSVC() or compiler.isIntel(): return "NMake Makefiles" elif compiler.isMinGW(): return "MinGW Makefiles" else: EmergeDebug.die("unknown %s compiler" % self.compiler())
def install( self ): src = self.sourceDir() dst = self.imageDir() if not os.path.isdir(dst): os.mkdir(dst) if not os.path.isdir(os.path.join(dst, "bin")): os.mkdir(os.path.join(dst, "bin")) if not os.path.isdir(os.path.join(dst, "lib")): os.mkdir(os.path.join(dst, "lib")) if not os.path.isdir(os.path.join(dst, "include")): os.mkdir(os.path.join(dst, "include")) if not os.path.isdir(os.path.join(dst, "include", "ghostscript")): os.mkdir(os.path.join(dst, "include", "ghostscript")) if compiler.isX64(): _bit = "64" else: _bit = "32" utils.copyFile(os.path.join(src, "bin", "gsdll%s.dll" % _bit), os.path.join(dst, "bin"), False) utils.copyFile(os.path.join(src, "bin", "gsdll%s.lib" % _bit), os.path.join(dst, "lib"), False) utils.copyFile(os.path.join(src, "bin", "gswin%s.exe" % _bit), os.path.join(dst, "bin"), False) utils.copyFile(os.path.join(src, "bin", "gswin%sc.exe" % _bit), os.path.join(dst, "bin"), False) utils.copyFile(os.path.join(self.sourceDir(), "psi", "iapi.h"), os.path.join(self.imageDir(), "include", "ghostscript", "iapi.h"), False) utils.copyFile(os.path.join(self.sourceDir(), "psi", "ierrors.h"), os.path.join(self.imageDir(), "include", "ghostscript", "ierrors.h"), False) utils.copyFile(os.path.join(self.sourceDir(), "devices", "gdevdsp.h"), os.path.join(self.imageDir(), "include", "ghostscript", "gdevdsp.h"), False) utils.copyFile(os.path.join(self.sourceDir(), "base", "gserrors.h"), os.path.join(self.imageDir(), "include", "ghostscript", "gserrors.h"), False) utils.copyDir(os.path.join(self.sourceDir(), "lib"), os.path.join(self.imageDir(), "lib"), False) return True
def make(self): self.enterSourceDir() _win64 = "" _rcomp = "" if compiler.isX64(): _win64 = " WIN64=" # because ghostscript doesn't know about msvc2015, it guesses wrong on this. But, # because of where we are, rc /should/ be in the path, so we'll just use that. if compiler.isMSVC2015(): _rcomp = " RCOMP=rc.exe" self.system("nmake -f psi\\msvc.mak" + _rcomp + _win64) return True
def make( self ): self.enterSourceDir() _win64 = "" _rcomp = "" if compiler.isX64(): _win64 = " WIN64=" # because ghostscript doesn't know about msvc2015, it guesses wrong on this. But, # because of where we are, rc /should/ be in the path, so we'll just use that. if compiler.isMSVC2015(): _rcomp = " RCOMP=rc.exe" self.system( "nmake -f psi\\msvc.mak" + _rcomp + _win64 ) return True
def setTargets( self ): if compiler.isX64(): if compiler.isMinGW(): self.targets['1.2.0'] = "http://www.tortall.net/projects/yasm/releases/yasm-1.2.0-win64.exe" if compiler.isMSVC(): self.targets['1.2.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.2.0-win64.zip" else: if compiler.isMinGW(): self.targets['1.2.0'] = "http://www.tortall.net/projects/yasm/releases/yasm-1.2.0-win32.exe" if compiler.isMSVC(): self.targets['1.2.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.2.0-win32.zip" self.shortDescription = "The Yasm Modular Assembler Project" self.defaultTarget = '1.2.0'
def __init__(self): self.msysdir = os.path.join( EmergeStandardDirs.emergeRoot(), "msys" ) self.environment = os.environ.copy() self._sh = os.path.join( self.msysdir, "bin", "sh.exe" ) if not os.path.exists( self._sh ): self._sh = os.path.join( self.msysdir, "usr", "bin", "bash.exe" ) mergeroot = self.toNativePath(EmergeStandardDirs.emergeRoot()) if compiler.isMinGW(): ldflags = "-L%s/lib " % mergeroot cflags = "-I%s/include " % mergeroot if self.buildType == "RelWithDebInfo": cflags += " -O2 -g " elif self.buildType == "Debug": cflags += " -O0 -g3 " elif compiler.isMSVC(): ldflags = "" cflags = " -MD -Zi" if compiler.isMSVC2013(): cflags = " -FS" self.environment[ "MSYS2_PATH_TYPE" ] = "inherit"#inherit the windows path if "make" in self.environment: del self.environment[ "make" ] if compiler.isMinGW(): arch = "32" if compiler.isX64(): arch = "64" self.environment[ "MSYSTEM" ] = "MINGW%s_EMERGE" % arch self.environment[ "CFLAGS" ] = cflags self.environment[ "CXXFLAGS" ] = cflags if ldflags != "": self.environment[ "LDFLAGS" ] = ldflags if compiler.isMSVC(): self.environment[ "LIB" ] = "%s;%s\\lib" % ( os.getenv("LIB"), EmergeStandardDirs.emergeRoot()) self.environment[ "INCLUDE" ] = "%s;%s\\include" % ( os.getenv("INCLUDE"), EmergeStandardDirs.emergeRoot()) self.environment[ "LD" ] = "link" self.environment[ "CC" ] = "cl -nologo" self.environment[ "CXX" ] = "cl -nologo" self.environment[ "NM" ] = "dumpbin -symbols" self.environment[ "AR" ] = "lib" #self.environment[ "WINDRES","rc-windres" #self.environment[ "RC","rc-windres" self.environment[ "STRIP"] = ":" self.environment[ "RANLIB"] = ":" self.environment[ "F77" ] = "no" self.environment[ "FC" ] = "no"
def compile(self): os.chdir(self.sourceDir()) cmd = "" if compiler.isX64(): config = "VC-WIN64A" else: config = "VC-WIN32" if not self.system("perl Configure %s" % config, "configure"): return False if compiler.isX64(): if not self.system("ms\do_win64a.bat", "configure"): return False else: if not self.system("ms\do_nasm.bat", "configure"): return False 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): if compiler.isX64(): if compiler.isMinGW(): self.targets[ '1.2.0'] = "http://www.tortall.net/projects/yasm/releases/yasm-1.2.0-win64.exe" if compiler.isMSVC(): self.targets[ '1.2.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.2.0-win64.zip" else: if compiler.isMinGW(): self.targets[ '1.2.0'] = "http://www.tortall.net/projects/yasm/releases/yasm-1.2.0-win32.exe" if compiler.isMSVC(): self.targets[ '1.2.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.2.0-win32.zip" self.shortDescription = "The Yasm Modular Assembler Project" self.defaultTarget = '1.2.0'
def setTargets(self): self.vlcArch = "32" if compiler.isX64(): self.vlcArch = "64" self.vlcBaseUrl = 'http://nightlies.videolan.org/build/win' + self.vlcArch + '/last/' self.vlcTagName = '3.0.0-git' self.gitVer = utils.UtilsCache.getNightlyVersionsFromUrl( self.vlcBaseUrl, "\d\d\d\d\d\d\d\d-\d\d\d\d")[0] self.targets[self.vlcTagName] = "%svlc-%s-%s-win%s.7z" % ( self.vlcBaseUrl, self.vlcTagName, self.gitVer, self.vlcArch) self.targetInstSrc[self.vlcTagName] = "vlc-%s-%s" % (self.vlcTagName, self.gitVer) self.patchToApply[self.vlcTagName] = [("vlc-2.1.5.diff", 1)] self.targets[self.vlcTagName + "-debug"] = "%svlc-%s-%s-win%s-debug.7z" % ( self.vlcBaseUrl, self.vlcTagName, self.gitVer, self.vlcArch) self.targetInstSrc[self.vlcTagName + "-debug"] = "vlc-%s-%s" % (self.vlcTagName, self.gitVer) self.patchToApply[self.vlcTagName + "-debug"] = [("vlc-2.1.5.diff", 1)] for releaseTag in ['2.2.0', '2.2.1']: self.targets[ releaseTag] = "http://download.videolan.org/pub/videolan/vlc/%s/win%s/vlc-%s-win%s.7z" % ( releaseTag, self.vlcArch, releaseTag, self.vlcArch) self.targetInstSrc[releaseTag] = 'vlc-' + releaseTag self.targetDigestUrls[ releaseTag] = "http://download.videolan.org/pub/videolan/vlc/%s/win%s/vlc-%s-win%s.7z.sha1" % ( releaseTag, self.vlcArch, releaseTag, self.vlcArch) self.patchToApply[releaseTag] = [("vlc-2.1.5.diff", 1)] self.shortDescription = "an open-source multimedia framework" self.defaultTarget = '2.2.1'