diff options
author | Tom Scogland <scogland1@llnl.gov> | 2024-03-13 21:34:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-14 05:34:09 +0100 |
commit | afcf0d2e39452e7ff9c4daf4b5c0c2f110165c2c (patch) | |
tree | 1b556cb4a147d158cb99966670d6d3beab92e8a2 | |
parent | 29ee8613661d1c28cf290e2784c725c9c958c3bc (diff) | |
download | spack-afcf0d2e39452e7ff9c4daf4b5c0c2f110165c2c.tar.gz spack-afcf0d2e39452e7ff9c4daf4b5c0c2f110165c2c.tar.bz2 spack-afcf0d2e39452e7ff9c4daf4b5c0c2f110165c2c.tar.xz spack-afcf0d2e39452e7ff9c4daf4b5c0c2f110165c2c.zip |
llvm-openmp: make llvm-openmp consistent with other llvm builds (#43165)
Add current versions of the 17 and 18 releases
Stop making it nearly impossible to compose this correctly with code built with gcc
Build for compatibility by default like we do in every other llvm package
-rw-r--r-- | var/spack/repos/builtin/packages/llvm-openmp/package.py | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/var/spack/repos/builtin/packages/llvm-openmp/package.py b/var/spack/repos/builtin/packages/llvm-openmp/package.py index b826e86a36..ec4046a61d 100644 --- a/var/spack/repos/builtin/packages/llvm-openmp/package.py +++ b/var/spack/repos/builtin/packages/llvm-openmp/package.py @@ -8,6 +8,15 @@ import os from spack.package import * +def resource_for_ver(ver, sha256): + resource( + name="cmake", + url=f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{ver}/cmake-{ver}.src.tar.xz", + sha256=sha256, + when=f"@{ver}", + ) + + class LlvmOpenmp(CMakePackage): """The OpenMP subproject of LLVM contains the components required to build an executable OpenMP program that are outside the compiler itself.""" @@ -17,30 +26,29 @@ class LlvmOpenmp(CMakePackage): license("Apache-2.0") + version("18.1.0", sha256="ef1cef885d463e4becf5e132a9175a540c6f4487334c0e86274a374ce7d0a092") + resource_for_ver( + "18.1.0", sha256="d367bf77a3707805168b0a7a7657c8571207fcae29c5890312642ee42b76c967" + ) + version("17.0.6", sha256="74334cbb4dc8b73a768448a7561d5a3540404940b2267b1fb9813a6464b320de") + resource_for_ver( + "17.0.6", sha256="807f069c54dc20cb47b21c1f6acafdd9c649f3ae015609040d6182cab01140f4" + ) version("16.0.0", sha256="e30f69c6533157ec4399193ac6b158807610815accfbed98695d72074e4bedd0") + resource_for_ver( + "16.0.0", sha256="04e62ab7d0168688d9102680adf8eabe7b04275f333fe20eef8ab5a3a8ea9fcc" + ) version("14.0.6", sha256="4f731ff202add030d9d68d4c6daabd91d3aeed9812e6a5b4968815cfdff0eb1f") version("12.0.1", sha256="60fe79440eaa9ebf583a6ea7f81501310388c02754dbe7dc210776014d06b091") version("9.0.0", sha256="9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b") version("8.0.0", sha256="f7b1705d2f16c4fc23d6531f67d2dd6fb78a077dd346b02fed64f4b8df65c9d5") - variant( - "multicompat", - default=False, - description="Support gomp and the Intel openMP runtime library.", - ) + variant("multicompat", default=True, description="Support the GNU OpenMP runtime interface.") depends_on("cmake@3.13.4:", when="@12:", type="build") depends_on("cmake@2.8:", type="build") depends_on("py-lit", type="test") depends_on("py-filecheck", type="test") - # depends_on("llvm-utils", type="test") # for "not" - - resource( - name="cmake", - url="https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/cmake-16.0.0.src.tar.xz", - sha256="04e62ab7d0168688d9102680adf8eabe7b04275f333fe20eef8ab5a3a8ea9fcc", - when="@16.0.0", - ) @property def root_cmakelists_dir(self): @@ -59,14 +67,12 @@ class LlvmOpenmp(CMakePackage): @when("@16:") def patch(self): - src = os.path.join(self.stage.source_path, f"cmake-{self.version}.src") - dst = os.path.join(self.stage.path, "cmake") - os.rename(src, dst) + cmake_mod_dir = os.path.join(self.stage.source_path, f"cmake-{self.version}.src") + if os.path.isdir(cmake_mod_dir): + os.rename(cmake_mod_dir, os.path.join(self.stage.path, "cmake")) def cmake_args(self): - # Disable LIBOMP_INSTALL_ALIASES, otherwise the library is installed as - # libgomp alias which can conflict with GCC's libgomp. - cmake_args = ["-DLIBOMP_INSTALL_ALIASES=OFF"] + cmake_args = [] # Add optional support for both Intel and gcc compilers if self.spec.satisfies("+multicompat"): cmake_args.append("-DKMP_GOMP_COMPAT=1") |