2023-01-19 06:30:17 +08:00
|
|
|
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
2020-08-13 08:36:35 +08:00
|
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
|
2022-06-17 15:34:49 +08:00
|
|
|
import re
|
2020-08-13 08:36:35 +08:00
|
|
|
|
2022-05-29 00:55:44 +08:00
|
|
|
from spack.package import *
|
2020-08-13 08:36:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
class Comgr(CMakePackage):
|
|
|
|
"""This provides various Lightning Compiler related services. It currently
|
|
|
|
contains one library, the Code Object Manager (Comgr)"""
|
|
|
|
|
|
|
|
homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport"
|
2021-04-28 02:38:14 +08:00
|
|
|
git = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport.git"
|
2023-07-28 00:42:17 +08:00
|
|
|
url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-5.5.0.tar.gz"
|
2022-06-24 00:10:01 +08:00
|
|
|
tags = ["rocm"]
|
2022-07-31 06:19:18 +08:00
|
|
|
|
2023-02-02 13:07:25 +08:00
|
|
|
maintainers("srekolam", "renjithravindrankannath", "haampie")
|
2022-06-17 15:34:49 +08:00
|
|
|
libraries = ["libamd_comgr"]
|
2022-07-31 06:19:18 +08:00
|
|
|
|
2021-04-28 02:38:14 +08:00
|
|
|
version("master", branch="amd-stg-open")
|
2023-09-07 13:49:19 +08:00
|
|
|
version("5.6.1", sha256="0a85d84619f98be26ca7a32c71f94ed3c4e9866133789eabb451be64ce739300")
|
2023-08-29 12:12:40 +08:00
|
|
|
version("5.6.0", sha256="9396a7238b547ee68146c669b10b9d5de8f1d76527c649133c75d8076a185a72")
|
2023-07-28 00:42:17 +08:00
|
|
|
version("5.5.1", sha256="0fbb15fe5a95c2e141ccd360bc413e1feda283334781540a6e5095ab27fd8019")
|
|
|
|
version("5.5.0", sha256="97dfff03226ce0902b9d5d1c8c7bebb7a15978a81b6e9c750bf2d2473890bd42")
|
2023-02-16 17:14:31 +08:00
|
|
|
version("5.4.3", sha256="8af18035550977fe0aa9cca8dfacbe65fe292e971de5a0e160710bafda05a81f")
|
2023-02-07 07:00:10 +08:00
|
|
|
version("5.4.0", sha256="f4b83b27ff6195679d695c3f41fa25456e9c50bae6d978f46d3541b472aef757")
|
2023-01-12 01:47:27 +08:00
|
|
|
version("5.3.3", sha256="6a4ef69e672a077b5909977248445f0eedf5e124af9812993a4d444be030c78b")
|
2022-12-13 03:46:20 +08:00
|
|
|
version("5.3.0", sha256="072f849d79476d87d31d62b962e368762368d540a9da02ee2675963dc4942b2c")
|
2022-09-22 05:40:40 +08:00
|
|
|
version("5.2.3", sha256="36d67dbe791d08ad0a02f0f3aedd46059848a0a232c5f999670103b0410c89dc")
|
2022-09-20 11:13:38 +08:00
|
|
|
version("5.2.1", sha256="ebeaea8e653fc2b9d67d3271be44690ac7876ee679baa01d47863e75362b8c85")
|
2022-08-12 15:20:47 +08:00
|
|
|
version("5.2.0", sha256="5f63fa93739ee9230756ef93c53019474b6cdddea3b588492d785dae1b08c087")
|
2022-06-02 01:57:10 +08:00
|
|
|
version("5.1.3", sha256="3078c10e9a852fe8357712a263ad775b15944e083f93a879935c877511066ac9")
|
2022-05-10 23:42:22 +08:00
|
|
|
version("5.1.0", sha256="1cdcfe5acb768ef50fb0026d4ee7ba01e615251ad3c27bb2593cdcf8c070a894")
|
2022-12-06 02:47:45 +08:00
|
|
|
version(
|
|
|
|
"5.0.2",
|
|
|
|
sha256="20d733f70d8edb573d8c92707f663d7d46dcaff08026cd6addbb83266679f92a",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"5.0.0",
|
|
|
|
sha256="da1bbc694bd930a504406eb0a0018c2e317d8b2c136fb2cab8de426870efe9a8",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"4.5.2",
|
|
|
|
sha256="e45f387fb6635fc1713714d09364204cd28fea97655b313c857beb1f8524e593",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"4.5.0",
|
|
|
|
sha256="03c5880e0922fcff31306f7da2eb9d3a3709d9b5b75b3524dcfae85f4b181678",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
2022-05-18 05:11:32 +08:00
|
|
|
version(
|
|
|
|
"4.3.1",
|
|
|
|
sha256="f1d99550383ed7b3a01d304eedc3d86a8e45b271aa5a80b1dd099c22fda3f745",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"4.3.0",
|
|
|
|
sha256="f77b505abb474078374701dfc49e651ad3eeec5349ce6edda54549943a3775ee",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"4.2.0",
|
|
|
|
sha256="40a1ea50d2aea0cf75c4d17cdd6a7fe44ae999bf0147d24a756ca4675ce24e36",
|
2022-01-17 20:08:24 +08:00
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"4.1.0",
|
|
|
|
sha256="ffb625978555c63582aa46857672431793261166aa31761eff4fe5c2cab661ae",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"4.0.0",
|
|
|
|
sha256="f389601fb70b2d9a60d0e2798919af9ddf7b8376a2e460141507fe50073dfb31",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"3.10.0",
|
|
|
|
sha256="b44ee5805a6236213d758fa4b612bb859d8f774b9b4bdc3a2699bb009dd631bc",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"3.9.0",
|
|
|
|
sha256="6600e144d72dadb6d893a3388b42af103b9443755ce556f4e9e205ccd8ec0c83",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"3.8.0",
|
|
|
|
sha256="62a35480dfabaa98883d91ed0f7c490daa9bbd424af37e07e5d85a6e8030b146",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"3.7.0",
|
|
|
|
sha256="73e56ec3c63dade24ad351e9340e2f8e127694028c1fb7cec5035376bf098432",
|
|
|
|
deprecated=True,
|
|
|
|
)
|
|
|
|
version(
|
|
|
|
"3.5.0",
|
|
|
|
sha256="25c963b46a82d76d55b2302e0e18aac8175362656a465549999ad13d07b689b9",
|
2021-10-27 03:18:38 +08:00
|
|
|
deprecated=True,
|
|
|
|
)
|
2022-07-31 06:19:18 +08:00
|
|
|
|
2020-12-15 20:55:45 +08:00
|
|
|
# Disable the hip compile tests. Spack should not be using
|
|
|
|
# /opt/rocm, and this breaks the build when /opt/rocm exists.
|
2021-08-09 15:48:05 +08:00
|
|
|
patch("hip-tests.patch", when="@:4.2.0")
|
2022-07-31 06:19:18 +08:00
|
|
|
|
2021-10-03 21:09:02 +08:00
|
|
|
depends_on("cmake@3.2.0:", type="build", when="@:3.8")
|
2020-12-15 20:55:45 +08:00
|
|
|
depends_on("cmake@3.13.4:", type="build", when="@3.9.0:")
|
2022-07-31 06:19:18 +08:00
|
|
|
|
2023-08-09 21:22:58 +08:00
|
|
|
depends_on("zlib-api", type="link")
|
2020-09-23 00:09:03 +08:00
|
|
|
depends_on("z3", type="link")
|
|
|
|
depends_on("ncurses", type="link")
|
2022-07-31 06:19:18 +08:00
|
|
|
|
rocmlibs: relax rocm-cmake version requirements (#29857)
* rocmlibs: relax rocm-cmake version requirements
The rocm-cmake modules tend to be backwards-compatible, to the extent
that most ROCm math libraries were built using rocm-cmake@master
for a long while without anybody noticing. (That was fixed in
97f0c3ccd9f0a40896998a7580150a514ec3bc37.)
Some packages, like comgr, barely use rocm-cmake for anything, and
we can easily set a very minimal version requirement. For most
packages, however, it would be a lot of effort to determine the
minimum rocm-cmake version required for each release. For those
packages, I just turned the exact version requirement into a
minimum version requirement.
Since I was looking through the CMakeLists.txt for a large number of
libraries, I also took note of the cmake_minimum_required and adjusted
the cmake minimum requirements to match.
* Add rocblas build dependency to hipblas
The rocblas library is required both for both building and linking
hipblas.
* Remove rocm-cmake from vtk-m dependency list
The rocm-cmake package provides CMake scripts that facilitate common
build configuration tasks in the ROCm libraries. It is never needed at
link-time. Also, there are no calls to find_package(ROCM) or
include(ROCM.*)in vtk-m, so this dependency will never be used.
2022-04-19 21:26:40 +08:00
|
|
|
depends_on("rocm-cmake@3.5.0:", type="build")
|
2022-07-31 06:19:18 +08:00
|
|
|
|
2021-04-28 02:38:14 +08:00
|
|
|
for ver in [
|
|
|
|
"3.5.0",
|
|
|
|
"3.7.0",
|
|
|
|
"3.8.0",
|
|
|
|
"3.9.0",
|
|
|
|
"3.10.0",
|
|
|
|
"4.0.0",
|
|
|
|
"4.1.0",
|
2022-03-26 01:56:52 +08:00
|
|
|
"4.2.0",
|
|
|
|
"4.3.0",
|
|
|
|
"4.3.1",
|
|
|
|
"4.5.0",
|
|
|
|
"4.5.2",
|
|
|
|
"5.0.0",
|
|
|
|
"5.0.2",
|
2022-06-02 01:57:10 +08:00
|
|
|
"5.1.0",
|
|
|
|
"5.1.3",
|
2022-08-12 15:20:47 +08:00
|
|
|
"5.2.0",
|
2022-09-20 11:13:38 +08:00
|
|
|
"5.2.1",
|
2022-09-22 05:40:40 +08:00
|
|
|
"5.2.3",
|
2022-12-13 03:46:20 +08:00
|
|
|
"5.3.0",
|
2023-01-12 01:47:27 +08:00
|
|
|
"5.3.3",
|
2023-02-07 07:00:10 +08:00
|
|
|
"5.4.0",
|
2023-02-16 17:14:31 +08:00
|
|
|
"5.4.3",
|
2023-07-28 00:42:17 +08:00
|
|
|
"5.5.0",
|
|
|
|
"5.5.1",
|
2023-08-29 12:12:40 +08:00
|
|
|
"5.6.0",
|
2023-09-07 13:49:19 +08:00
|
|
|
"5.6.1",
|
2022-06-02 01:57:10 +08:00
|
|
|
"master",
|
|
|
|
]:
|
2021-06-17 17:52:33 +08:00
|
|
|
# llvm libs are linked statically, so this *could* be a build dep
|
|
|
|
depends_on("llvm-amdgpu@" + ver, when="@" + ver)
|
|
|
|
|
|
|
|
# aomp may not build rocm-device-libs as part of llvm-amdgpu, so make
|
|
|
|
# that a conditional dependency
|
|
|
|
depends_on(
|
|
|
|
"rocm-device-libs@" + ver, when="@{0} ^llvm-amdgpu ~rocm-device-libs".format(ver)
|
2022-07-31 06:19:18 +08:00
|
|
|
)
|
2020-08-13 08:36:35 +08:00
|
|
|
|
2023-09-07 13:49:19 +08:00
|
|
|
for ver in ["5.5.0", "5.5.1", "5.6.0", "5.6.1"]:
|
2023-07-28 00:42:17 +08:00
|
|
|
depends_on("rocm-core@" + ver, when="@" + ver)
|
|
|
|
|
2020-12-15 20:55:45 +08:00
|
|
|
root_cmakelists_dir = join_path("lib", "comgr")
|
2022-06-17 15:34:49 +08:00
|
|
|
|
2023-06-10 00:04:19 +08:00
|
|
|
def cmake_args(self):
|
|
|
|
args = [self.define("BUILD_TESTING", self.run_tests)]
|
2023-07-11 05:55:39 +08:00
|
|
|
if self.spec.satisfies("@5.4.3:"):
|
|
|
|
args.append("-DCMAKE_INSTALL_LIBDIR=lib")
|
2023-06-10 00:04:19 +08:00
|
|
|
return args
|
|
|
|
|
2022-06-17 15:34:49 +08:00
|
|
|
@classmethod
|
|
|
|
def determine_version(cls, lib):
|
|
|
|
match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib)
|
|
|
|
if match:
|
|
|
|
ver = "{0}.{1}.{2}".format(
|
|
|
|
int(match.group(1)), int(match.group(2)), int(match.group(3))
|
|
|
|
)
|
|
|
|
else:
|
|
|
|
ver = None
|
|
|
|
return ver
|