diff --git a/portage/dev-util/llvm-meta/clang/clang.py b/portage/dev-util/llvm-meta/clang/clang.py index c55de18f3..fd396fff2 100644 --- a/portage/dev-util/llvm-meta/clang/clang.py +++ b/portage/dev-util/llvm-meta/clang/clang.py @@ -1,42 +1,43 @@ # -*- coding: utf-8 -*- import info import portage class subinfo(info.infoclass): def setTargets( self ): self.versionInfo.setDefaultValues( packageName = "cfe", gitUrl = "[git]http://llvm.org/git/clang.git") self.targetDigests['3.7.0'] = '4ff8100565528b13d99a73f807e9b426c3b3bed9' for ver in self.svnTargets.keys() | self.targets.keys(): self.patchToApply[ver] = [("fix_shortpath.patch", 1)] if ver in ["3.7.0", "3.7.1", "release_37"]: self.patchToApply[ ver ] += [("0014-use-DESTDIR-on-windows.patch", 1)] else: self.patchToApply[ver] += [("fix-plugins.diff", 1)] if compiler.isMinGW(): self.patchToApply[ ver ] += [("0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch", 1), ("0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch", 1), ("0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch", 1), ("0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch", 1)] def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' self.dependencies['win32libs/libxml2'] = 'default' + self.dependencies['util/llvm'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self, **args ): CMakePackageBase.__init__(self) def configure( self, defines=""): return True def make( self ): return True def install( self): return True diff --git a/portage/dev-util/llvm-meta/lld/lld.py b/portage/dev-util/llvm-meta/lld/lld.py index 55dc8efbc..5ab97d9c2 100644 --- a/portage/dev-util/llvm-meta/lld/lld.py +++ b/portage/dev-util/llvm-meta/lld/lld.py @@ -1,25 +1,26 @@ # -*- coding: utf-8 -*- import info class subinfo(info.infoclass): def setTargets( self ): self.versionInfo.setDefaultValues( ) def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' + self.dependencies["dev-util/llvm"] = "default" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self, **args ): CMakePackageBase.__init__(self) def configure( self, defines=""): return True def make( self ): return True def install( self): return True diff --git a/portage/dev-util/llvm-meta/llvm/llvm.py b/portage/dev-util/llvm-meta/llvm/llvm.py index 4b1320510..dc3d94504 100644 --- a/portage/dev-util/llvm-meta/llvm/llvm.py +++ b/portage/dev-util/llvm-meta/llvm/llvm.py @@ -1,49 +1,68 @@ # -*- coding: utf-8 -*- import info +from Package import CMakePackageBase + class subinfo(info.infoclass): def setTargets( self ): self.versionInfo.setDefaultValues( ) self.targetDigests['3.7.0'] = '0355c2fe01a8d17c3315069e6f2ef80c281e7dad' for ver in self.svnTargets.keys() | self.targets.keys(): if ver in ["3.7.0", "3.7.1", "release_37"]: self.patchToApply[ ver ] = [("0002-use-DESTDIR-on-windows.patch", 1)] if ver in ["release_38"]: self.patchToApply[ver] = [("use-DESTDIR-on-windows-3.8.patch", 1)] def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' - self.buildDependencies['dev-util/lld'] = 'default' - self.buildDependencies['dev-util/clang'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self, **args ): CMakePackageBase.__init__(self) + self.clang = portage.getPackageInstance('dev-util', 'clang') + self.lld = portage.getPackageInstance('dev-util', 'lld') + self.subPackages = [self.clang, self.lld] self.subinfo.options.configure.defines = '-DLLVM_TARGETS_TO_BUILD="X86"' - self.subinfo.options.configure.defines += " -DLLVM_EXTERNAL_LLD_SOURCE_DIR=\"%s\"" % portage.getPackageInstance('dev-util', 'lld').sourceDir().replace("\\", "/") - self.subinfo.options.configure.defines += " -DLLVM_EXTERNAL_CLANG_SOURCE_DIR=\"%s\"" % portage.getPackageInstance('dev-util', 'clang').sourceDir().replace("\\", "/") + self.subinfo.options.configure.defines += " -DLLVM_EXTERNAL_LLD_SOURCE_DIR=\"%s\"" % self.lld.sourceDir().replace("\\", "/") + self.subinfo.options.configure.defines += " -DLLVM_EXTERNAL_CLANG_SOURCE_DIR=\"%s\"" % self.clang.sourceDir().replace("\\", "/") if compiler.isMinGW(): self.subinfo.options.configure.defines += " -DBUILD_SHARED_LIBS=ON" + def fetch(self): + if not CMakePackageBase.fetch(self): + return False + for p in self.subPackages: + if not p.fetch(): + return False + return True + + def unpack(self): + if not CMakePackageBase.unpack(self): + return False + for p in self.subPackages: + if not p.unpack(): + return False + return True + def configureOptions(self, defines=""): options = CMakePackageBase.configureOptions(self, defines) # just expect that we don't want to debug our compiler options += ' -DCMAKE_BUILD_TYPE=Release' return options def install(self): if not CMakePackageBase.install(self): return False if compiler.isMinGW(): files = os.listdir(os.path.join(self.buildDir(), "lib")) for f in files: if f.endswith("dll.a"): src = os.path.join(self.buildDir(), "lib", f) dest = os.path.join(self.imageDir(), "lib", f) if not os.path.exists(dest): utils.copyFile(src, dest, False) return True \ No newline at end of file