diff --git a/libs/llvm-meta/llvm/llvm-8.0.0-20190411.diff b/libs/llvm-meta/llvm/llvm-8.0.0-20190411.diff new file mode 100644 index 00000000..76bf2ba8 --- /dev/null +++ b/libs/llvm-meta/llvm/llvm-8.0.0-20190411.diff @@ -0,0 +1,38 @@ +diff -Nrub -x '*~' -x '*\.rej' -x '*\.orig' -x '*\.o' -x '*\.pyc' llvm-8.0.0.src.orig/cmake/config-ix.cmake llvm-8.0.0.src/cmake/config-ix.cmake +--- llvm-8.0.0.src.orig/cmake/config-ix.cmake 2018-11-26 01:03:39.000000000 +0100 ++++ llvm-8.0.0.src/cmake/config-ix.cmake 2019-04-11 11:23:55.266187300 +0200 +@@ -154,7 +154,7 @@ + else() + include_directories(${LIBXML2_INCLUDE_DIR}) + endif() +- set(LIBXML2_LIBS "xml2") ++ set(LIBXML2_LIBS ${LIBXML2_LIBRARIES}) + endif() + endif() + endif() +diff -Nrub -x '*~' -x '*\.rej' -x '*\.orig' -x '*\.o' -x '*\.pyc' llvm-8.0.0.src.orig/lib/Testing/Support/CMakeLists.txt llvm-8.0.0.src/lib/Testing/Support/CMakeLists.txt +--- llvm-8.0.0.src.orig/lib/Testing/Support/CMakeLists.txt 2018-09-06 01:30:17.000000000 +0200 ++++ llvm-8.0.0.src/lib/Testing/Support/CMakeLists.txt 2019-04-11 11:23:55.297465900 +0200 +@@ -1,7 +1,8 @@ +-add_definitions(-DGTEST_LANG_CXX11=1) +-add_definitions(-DGTEST_HAS_TR1_TUPLE=0) ++if (LLVM_INCLUDE_TESTS) ++ add_definitions(-DGTEST_LANG_CXX11=1) ++ add_definitions(-DGTEST_HAS_TR1_TUPLE=0) + +-add_llvm_library(LLVMTestingSupport ++ add_llvm_library(LLVMTestingSupport + Error.cpp + SupportHelpers.cpp + +@@ -14,6 +15,7 @@ + Support + ) + +-include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include) +-include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googlemock/include) +-target_link_libraries(LLVMTestingSupport PRIVATE gtest) ++ include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include) ++ include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googlemock/include) ++ target_link_libraries(LLVMTestingSupport PRIVATE gtest) ++endif() diff --git a/libs/llvm-meta/llvm/llvm.py b/libs/llvm-meta/llvm/llvm.py index 0935edad..e62735f9 100644 --- a/libs/llvm-meta/llvm/llvm.py +++ b/libs/llvm-meta/llvm/llvm.py @@ -1,103 +1,104 @@ # -*- coding: utf-8 -*- import info from Package import CMakePackageBase class subinfo(info.infoclass): def registerOptions(self): self.options.dynamic.setDefault("buildType", "Release") def setTargets(self): self.versionInfo.setDefaultValues() self.patchLevel["5.0.1"] = 2 self.patchLevel["6.0.0"] = 2 self.patchLevel["7.0.1"] = 1 self.patchToApply["6.0.1"] = [("llvm-6.0.1-20181019.diff", 1)] self.patchToApply["7.0.1"] = [("llvm-7.0.1-20190118.diff", 1), ("llvm-7.0.1-20190102.diff", 1)] + self.patchToApply["8.0.0"] = [("llvm-8.0.0-20190411.diff", 1)] def setDependencies(self): # workaround, ensure system clang is used to build bjam self.buildDependencies["libs/boost/boost-bjam"] = None self.runtimeDependencies["virtual/base"] = None self.buildDependencies["libs/libxml2"] = None from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__(self, **args): CMakePackageBase.__init__(self) self.supportsClang = False self.subinfo.options.configure.args += " -DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_GO_TESTS=OFF" self.subinfo.options.configure.args += " -DLLVM_TARGETS_TO_BUILD='host'" # BEGIN: sub-package handling self.subPackages = [] def maybeAddSubPackage(pkg, cmakeDefine): if not pkg.isIgnored(): self.subinfo.options.configure.args += f" -D{cmakeDefine}=\"{OsUtils.toUnixPath(pkg.instance.sourceDir())}\"" self.subPackages.append(pkg.instance) maybeAddSubPackage(CraftPackageObject.get('libs/llvm-meta/clang'), "LLVM_EXTERNAL_CLANG_SOURCE_DIR") maybeAddSubPackage(CraftPackageObject.get('libs/llvm-meta/clang-tools-extra'), "LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR") maybeAddSubPackage(CraftPackageObject.get('libs/llvm-meta/lld'), "LLVM_EXTERNAL_LLD_SOURCE_DIR") # END: sub-package handling if CraftCore.compiler.isMSVC(): self.subinfo.options.configure.args += " -DLLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON" else: self.subinfo.options.configure.args += " -DBUILD_SHARED_LIBS=ON" # lldb by default needs SWIG for the Python integration # disable this support until we have a swig package in Craft self.subinfo.options.configure.args += " -DLLDB_DISABLE_PYTHON=ON" def fetch(self): if not CMakePackageBase.fetch(self): return False for p in self.subPackages: if not p.fetch(noop=False): return False return True def unpack(self): if not CMakePackageBase.unpack(self): return False for p in self.subPackages: if not p.unpack(noop=False): return False return True def install(self): if not CMakePackageBase.install(self): return False if CraftCore.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.installDir(), "lib", f) if not os.path.exists(dest): utils.copyFile(src, dest, False) elif CraftCore.compiler.isMSVC(): utils.copyFile(os.path.join(self.buildDir(), "lib", "clang.lib"), os.path.join(self.installDir(), "lib", "craft_clang_plugins.lib")) # the build system is broken so.... src = os.path.join(self.installDir(), "bin", f"clang{CraftCore.compiler.executableSuffix}") def maybeCopy(dest): dest = f"{dest}{CraftCore.compiler.executableSuffix}" if not os.path.exists(dest): return utils.copyFile(src, dest) else: return True if CraftCore.compiler.isMSVC(): if not maybeCopy(os.path.join(self.installDir(), "bin", "clang-cl")): return False return maybeCopy(os.path.join(self.installDir(), "bin", "clang++")) diff --git a/libs/llvm-meta/version.ini b/libs/llvm-meta/version.ini index 3cb90029..50ad515b 100644 --- a/libs/llvm-meta/version.ini +++ b/libs/llvm-meta/version.ini @@ -1,9 +1,9 @@ [General] name = llvm tags = branches = master;release_40;release_50;release_60 -tarballs = 4.0.1;5.0.0;5.0.1;6.0.0;6.0.1;7.0.0;7.0.1 +tarballs = 4.0.1;5.0.0;5.0.1;6.0.0;6.0.1;7.0.0;7.0.1;8.0.0 defaulttarget = 7.0.1 tarballUrl = http://llvm.org/releases/${VERSION}/${PACKAGE_NAME}-${VERSION}.src.tar.xz tarballInstallSrc = ${PACKAGE_NAME}-${VERSION}.src gitUrl = [git]https://git.llvm.org/git/${PACKAGE_NAME}.git