Compare commits
29 Commits
hs/fix/sim
...
hs/windows
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bf17cd8dd6 | ||
![]() |
4b54e72351 | ||
![]() |
199cbce5ef | ||
![]() |
82dea7e6ce | ||
![]() |
bd71ce5856 | ||
![]() |
73fc86cbc3 | ||
![]() |
3589edcc6d | ||
![]() |
cade66d842 | ||
![]() |
c5766aa757 | ||
![]() |
c3e9bd4fbf | ||
![]() |
05357052ac | ||
![]() |
dc3f5cd606 | ||
![]() |
9a16927993 | ||
![]() |
093b273f5c | ||
![]() |
b6ff126494 | ||
![]() |
fe8f631b7d | ||
![]() |
f9065f0c7e | ||
![]() |
699735016f | ||
![]() |
ec85bbe3f7 | ||
![]() |
7e1ad8f321 | ||
![]() |
0eb8f4f0f9 | ||
![]() |
ee27dc5d45 | ||
![]() |
ec0a57cba4 | ||
![]() |
4c91e6245c | ||
![]() |
6a1dfbda97 | ||
![]() |
6b0011c8f1 | ||
![]() |
8b5521ec0a | ||
![]() |
b9e4e98f15 | ||
![]() |
85487f23bc |
@@ -893,8 +893,9 @@ The valid variables for a ``when`` clause are:
|
||||
|
||||
#. ``env``. The user environment (usually ``os.environ`` in Python).
|
||||
|
||||
#. ``hostname``. The hostname of the system (if ``hostname`` is an
|
||||
executable in the user's PATH).
|
||||
#. ``hostname``. The hostname of the system.
|
||||
|
||||
#. ``full_hostname``. The fully qualified hostname of the system.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
SpecLists as Constraints
|
||||
|
@@ -843,20 +843,19 @@ def uniq(sequence):
|
||||
return uniq_list
|
||||
|
||||
|
||||
def elide_list(line_list, max_num=10):
|
||||
def elide_list(line_list: List[str], max_num: int = 10) -> List[str]:
|
||||
"""Takes a long list and limits it to a smaller number of elements,
|
||||
replacing intervening elements with '...'. For example::
|
||||
|
||||
elide_list([1,2,3,4,5,6], 4)
|
||||
elide_list(["1", "2", "3", "4", "5", "6"], 4)
|
||||
|
||||
gives::
|
||||
|
||||
[1, 2, 3, '...', 6]
|
||||
["1", "2", "3", "...", "6"]
|
||||
"""
|
||||
if len(line_list) > max_num:
|
||||
return line_list[: max_num - 1] + ["..."] + line_list[-1:]
|
||||
else:
|
||||
return line_list
|
||||
return [*line_list[: max_num - 1], "...", line_list[-1]]
|
||||
return line_list
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
@@ -2561,7 +2561,6 @@ def install_root_node(spec, unsigned=False, force=False, sha256=None):
|
||||
with spack.util.path.filter_padding():
|
||||
tty.msg('Installing "{0}" from a buildcache'.format(spec.format()))
|
||||
extract_tarball(spec, download_result, force)
|
||||
spec.package.windows_establish_runtime_linkage()
|
||||
spack.hooks.post_install(spec, False)
|
||||
spack.store.STORE.db.add(spec, spack.store.STORE.layout)
|
||||
|
||||
|
@@ -108,6 +108,11 @@ def _conditional_cmake_defaults(pkg: spack.package_base.PackageBase, args: List[
|
||||
if _supports_compilation_databases(pkg):
|
||||
args.append(CMakeBuilder.define("CMAKE_EXPORT_COMPILE_COMMANDS", True))
|
||||
|
||||
# Enable MACOSX_RPATH by default when cmake_minimum_required < 3
|
||||
# https://cmake.org/cmake/help/latest/policy/CMP0042.html
|
||||
if pkg.spec.satisfies("platform=darwin") and cmake.satisfies("@3:"):
|
||||
args.append(CMakeBuilder.define("CMAKE_POLICY_DEFAULT_CMP0042", "NEW"))
|
||||
|
||||
|
||||
def generator(*names: str, default: Optional[str] = None):
|
||||
"""The build system generator to use.
|
||||
|
@@ -460,7 +460,7 @@ def push_fn(args):
|
||||
"The following {} specs were skipped as they already exist in the buildcache:\n"
|
||||
" {}\n"
|
||||
" Use --force to overwrite them.".format(
|
||||
len(skipped), ", ".join(elide_list(skipped, 5))
|
||||
len(skipped), ", ".join(elide_list([_format_spec(s) for s in skipped], 5))
|
||||
)
|
||||
)
|
||||
|
||||
|
@@ -599,24 +599,6 @@ def compiler_for_spec(compiler_spec, arch_spec):
|
||||
return compilers[0]
|
||||
|
||||
|
||||
@_auto_compiler_spec
|
||||
def get_compiler_duplicates(compiler_spec, arch_spec):
|
||||
config = spack.config.CONFIG
|
||||
|
||||
scope_to_compilers = {}
|
||||
for scope in config.scopes:
|
||||
compilers = compilers_for_spec(compiler_spec, arch_spec=arch_spec, scope=scope)
|
||||
if compilers:
|
||||
scope_to_compilers[scope] = compilers
|
||||
|
||||
cfg_file_to_duplicates = {}
|
||||
for scope, compilers in scope_to_compilers.items():
|
||||
config_file = config.get_config_filename(scope, "compilers")
|
||||
cfg_file_to_duplicates[config_file] = compilers
|
||||
|
||||
return cfg_file_to_duplicates
|
||||
|
||||
|
||||
@llnl.util.lang.memoized
|
||||
def class_for_compiler_name(compiler_name):
|
||||
"""Given a compiler module name, get the corresponding Compiler class."""
|
||||
|
@@ -488,7 +488,6 @@ def _process_binary_cache_tarball(
|
||||
|
||||
with timer.measure("install"), spack.util.path.filter_padding():
|
||||
binary_distribution.extract_tarball(pkg.spec, download_result, force=False, timer=timer)
|
||||
pkg.windows_establish_runtime_linkage()
|
||||
|
||||
if hasattr(pkg, "_post_buildcache_install_hook"):
|
||||
pkg._post_buildcache_install_hook()
|
||||
|
@@ -1467,6 +1467,7 @@ def do_fetch(self, mirror_only=False):
|
||||
checksum
|
||||
and (self.version not in self.versions)
|
||||
and (not isinstance(self.version, GitVersion))
|
||||
and ("dev_path" not in self.spec.variants)
|
||||
):
|
||||
tty.warn(
|
||||
"There is no checksum on file to fetch %s safely."
|
||||
|
@@ -4892,6 +4892,7 @@ def get_host_environment() -> Dict[str, Any]:
|
||||
"architecture": arch_spec,
|
||||
"arch_str": str(arch_spec),
|
||||
"hostname": socket.gethostname(),
|
||||
"full_hostname": socket.getfqdn(),
|
||||
}
|
||||
|
||||
|
||||
|
@@ -42,25 +42,6 @@ def test_multiple_conflicting_compiler_definitions(mutable_config):
|
||||
assert cmp.f77 == "f77"
|
||||
|
||||
|
||||
def test_get_compiler_duplicates(mutable_config, compiler_factory):
|
||||
# In this case there is only one instance of the specified compiler in
|
||||
# the test configuration (so it is not actually a duplicate), but the
|
||||
# method behaves the same.
|
||||
cnl_compiler = compiler_factory(spec="gcc@4.5.0", operating_system="CNL")
|
||||
# CNL compiler has no target attribute, and this is essential to make detection pass
|
||||
del cnl_compiler["compiler"]["target"]
|
||||
mutable_config.set(
|
||||
"compilers", [compiler_factory(spec="gcc@4.5.0", operating_system="SuSE11"), cnl_compiler]
|
||||
)
|
||||
cfg_file_to_duplicates = spack.compilers.get_compiler_duplicates(
|
||||
"gcc@4.5.0", spack.spec.ArchSpec("cray-CNL-xeon")
|
||||
)
|
||||
|
||||
assert len(cfg_file_to_duplicates) == 1
|
||||
cfg_file, duplicates = next(iter(cfg_file_to_duplicates.items()))
|
||||
assert len(duplicates) == 1
|
||||
|
||||
|
||||
def test_compiler_flags_from_config_are_grouped():
|
||||
compiler_entry = {
|
||||
"spec": "intel@17.0.2",
|
||||
|
@@ -275,9 +275,9 @@ def streamify(arg, mode):
|
||||
long_msg = cmd_line_string + f"\n{result}"
|
||||
if fail_on_error:
|
||||
raise ProcessTimeoutError(
|
||||
f"\nProcess timed out after {timeout}s"
|
||||
f"We expected the following command to run quickly but\
|
||||
it did not, please report this as an issue: {long_msg}",
|
||||
f"\nProcess timed out after {timeout}s. "
|
||||
"We expected the following command to run quickly but it did not, "
|
||||
f"please report this as an issue: {long_msg}",
|
||||
long_message=long_msg,
|
||||
) from te
|
||||
|
||||
|
@@ -885,6 +885,7 @@ e4s-cray-rhel-generate:
|
||||
extends: [ ".generate-cray-rhel", ".e4s-cray-rhel" ]
|
||||
|
||||
e4s-cray-rhel-build:
|
||||
allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
|
||||
extends: [ ".build", ".e4s-cray-rhel" ]
|
||||
trigger:
|
||||
include:
|
||||
@@ -907,6 +908,7 @@ e4s-cray-sles-generate:
|
||||
extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
|
||||
|
||||
e4s-cray-sles-build:
|
||||
allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
|
||||
extends: [ ".build", ".e4s-cray-sles" ]
|
||||
trigger:
|
||||
include:
|
||||
|
@@ -6,7 +6,7 @@
|
||||
spack:
|
||||
view: false
|
||||
specs:
|
||||
- vtk
|
||||
- vtk~mpi
|
||||
|
||||
cdash:
|
||||
build-group: Windows Visualization (Kitware)
|
||||
|
@@ -21,8 +21,6 @@ class Alquimia(CMakePackage):
|
||||
version("1.1.0", commit="211931c3e76b1ae7cdb48c46885b248412d6fe3d") # tag v1.1.0
|
||||
version("1.0.10", commit="b2c11b6cde321f4a495ef9fcf267cb4c7a9858a0") # tag v.1.0.10
|
||||
version("1.0.9", commit="2ee3bcfacc63f685864bcac2b6868b48ad235225") # tag v.1.0.9
|
||||
version("xsdk-0.6.0", commit="9a0aedd3a927d4d5e837f8fd18b74ad5a78c3821")
|
||||
version("xsdk-0.5.0", commit="8397c3b00a09534c5473ff3ab21f0e32bb159380")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
@@ -35,8 +33,6 @@ class Alquimia(CMakePackage):
|
||||
depends_on("pflotran@5.0.0", when="@1.1.0")
|
||||
depends_on("pflotran@4.0.1", when="@1.0.10")
|
||||
depends_on("pflotran@3.0.2", when="@1.0.9")
|
||||
depends_on("pflotran@xsdk-0.6.0", when="@xsdk-0.6.0")
|
||||
depends_on("pflotran@xsdk-0.5.0", when="@xsdk-0.5.0")
|
||||
depends_on("pflotran@develop", when="@develop")
|
||||
depends_on("petsc@3.10:", when="@develop")
|
||||
|
||||
|
@@ -497,7 +497,7 @@ def bjam_python_line(self, spec):
|
||||
spec["python"].libs[0],
|
||||
)
|
||||
|
||||
def determine_bootstrap_options(self, spec, with_libs, options):
|
||||
def determine_bootstrap_options(self, spec, with_libs, without_libs, options):
|
||||
boost_toolset_id = self.determine_toolset(spec)
|
||||
|
||||
# Arm compiler bootstraps with 'gcc' (but builds as 'clang')
|
||||
@@ -505,7 +505,10 @@ def determine_bootstrap_options(self, spec, with_libs, options):
|
||||
options.append("--with-toolset=gcc")
|
||||
else:
|
||||
options.append("--with-toolset=%s" % boost_toolset_id)
|
||||
options.append("--with-libraries=%s" % ",".join(with_libs))
|
||||
if with_libs:
|
||||
options.append("--with-libraries=%s" % ",".join(with_libs))
|
||||
else:
|
||||
options.append("--without-libraries=%s" % ",".join(without_libs))
|
||||
|
||||
if spec.satisfies("+python"):
|
||||
options.append("--with-python=%s" % spec["python"].command.path)
|
||||
@@ -677,43 +680,46 @@ def install(self, spec, prefix):
|
||||
env["PATH"] = newdir + ":" + env["PATH"]
|
||||
|
||||
with_libs = list()
|
||||
without_libs = list()
|
||||
for lib in Boost.all_libs:
|
||||
if "+{0}".format(lib) in spec:
|
||||
with_libs.append(lib)
|
||||
else:
|
||||
without_libs.append(lib)
|
||||
|
||||
remove_if_in_list = lambda lib, libs: libs.remove(lib) if lib in libs else None
|
||||
|
||||
# Remove libraries that the release version does not support
|
||||
if spec.satisfies("@1.69.0:") and "signals" in with_libs:
|
||||
with_libs.remove("signals")
|
||||
if not spec.satisfies("@1.54.0:") and "log" in with_libs:
|
||||
with_libs.remove("log")
|
||||
if not spec.satisfies("@1.53.0:") and "atomic" in with_libs:
|
||||
with_libs.remove("atomic")
|
||||
if not spec.satisfies("@1.48.0:") and "locale" in with_libs:
|
||||
with_libs.remove("locale")
|
||||
if not spec.satisfies("@1.47.0:") and "chrono" in with_libs:
|
||||
with_libs.remove("chrono")
|
||||
if not spec.satisfies("@1.43.0:") and "random" in with_libs:
|
||||
with_libs.remove("random")
|
||||
if not spec.satisfies("@1.39.0:") and "exception" in with_libs:
|
||||
with_libs.remove("exception")
|
||||
if spec.satisfies("@1.69.0:"):
|
||||
remove_if_in_list("signals", with_libs)
|
||||
remove_if_in_list("signals", without_libs)
|
||||
if not spec.satisfies("@1.54.0:"):
|
||||
remove_if_in_list("log", with_libs)
|
||||
remove_if_in_list("log", without_libs)
|
||||
if not spec.satisfies("@1.53.0:"):
|
||||
remove_if_in_list("atomic", with_libs)
|
||||
remove_if_in_list("atomic", without_libs)
|
||||
if not spec.satisfies("@1.48.0:"):
|
||||
remove_if_in_list("locale", with_libs)
|
||||
remove_if_in_list("locale", without_libs)
|
||||
if not spec.satisfies("@1.47.0:"):
|
||||
remove_if_in_list("chrono", with_libs)
|
||||
remove_if_in_list("chrono", without_libs)
|
||||
if not spec.satisfies("@1.43.0:"):
|
||||
remove_if_in_list("random", with_libs)
|
||||
remove_if_in_list("random", without_libs)
|
||||
if not spec.satisfies("@1.39.0:"):
|
||||
remove_if_in_list("exception", with_libs)
|
||||
remove_if_in_list("exception", without_libs)
|
||||
if spec.satisfies("+graph") and spec.satisfies("+mpi"):
|
||||
with_libs.append("graph_parallel")
|
||||
|
||||
if not with_libs:
|
||||
# if no libraries are specified for compilation, then you dont have
|
||||
# to configure/build anything, just copy over to the prefix
|
||||
# directory.
|
||||
src = join_path(self.stage.source_path, "boost")
|
||||
mkdirp(join_path(prefix, "include"))
|
||||
dst = join_path(prefix, "include", "boost")
|
||||
install_tree(src, dst)
|
||||
return
|
||||
remove_if_in_list("graph_parallel", without_libs)
|
||||
|
||||
# to make Boost find the user-config.jam
|
||||
env["BOOST_BUILD_PATH"] = self.stage.source_path
|
||||
|
||||
bootstrap_options = ["--prefix=%s" % prefix]
|
||||
self.determine_bootstrap_options(spec, with_libs, bootstrap_options)
|
||||
self.determine_bootstrap_options(spec, with_libs, without_libs, bootstrap_options)
|
||||
|
||||
if self.spec.satisfies("platform=windows"):
|
||||
bootstrap = Executable("cmd.exe")
|
||||
|
30
var/spack/repos/builtin/packages/cdi/package.py
Normal file
30
var/spack/repos/builtin/packages/cdi/package.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Cdi(AutotoolsPackage):
|
||||
"""
|
||||
CDI is a C and Fortran Interface to access Climate and NWP model Data.
|
||||
Supported data formats are GRIB, netCDF, SERVICE, EXTRA and IEG.
|
||||
"""
|
||||
|
||||
homepage = "https://code.mpimet.mpg.de/projects/cdi"
|
||||
url = "https://code.mpimet.mpg.de/attachments/download/29309/cdi-2.4.0.tar.gz"
|
||||
|
||||
version("2.4.0", sha256="91fca015b04c6841b9eab8b49e7726d35e35b9ec4350922072ec6e9d5eb174ef")
|
||||
|
||||
variant(
|
||||
"netcdf", default=True, description="This is needed to read/write NetCDF files with CDI"
|
||||
)
|
||||
|
||||
depends_on("netcdf-c", when="+netcdf")
|
||||
|
||||
def configure_args(self):
|
||||
args = []
|
||||
if "+netcdf" in self.spec:
|
||||
args.append("--with-netcdf=" + self.spec["netcdf-c"].prefix)
|
||||
return args
|
@@ -14,7 +14,7 @@
|
||||
from spack.package import *
|
||||
|
||||
|
||||
def cmake_cache_entry(name, value, vtype=None):
|
||||
def cmake_cache_entry(name, value, vtype=None, force=False):
|
||||
"""
|
||||
Helper that creates CMake cache entry strings used in
|
||||
'host-config' files.
|
||||
@@ -24,7 +24,8 @@ def cmake_cache_entry(name, value, vtype=None):
|
||||
vtype = "BOOL"
|
||||
else:
|
||||
vtype = "PATH"
|
||||
return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype)
|
||||
force_str = " FORCE" if force else ""
|
||||
return 'set({0} "{1}" CACHE {2} ""{3})\n\n'.format(name, value, vtype, force_str)
|
||||
|
||||
|
||||
class Conduit(CMakePackage):
|
||||
@@ -76,6 +77,8 @@ class Conduit(CMakePackage):
|
||||
|
||||
maintainers("cyrush")
|
||||
|
||||
root_cmakelists_dir = "src"
|
||||
|
||||
###########################################################################
|
||||
# package variants
|
||||
###########################################################################
|
||||
@@ -121,6 +124,12 @@ class Conduit(CMakePackage):
|
||||
# package dependencies
|
||||
###########################################################################
|
||||
|
||||
#######################
|
||||
# BLT
|
||||
#######################
|
||||
depends_on("blt", type="build")
|
||||
depends_on("blt@0.6.2:", type="build", when="@0.9:")
|
||||
|
||||
#######################
|
||||
# CMake
|
||||
#######################
|
||||
@@ -245,7 +254,7 @@ def url_for_version(self, version):
|
||||
def cmake_args(self):
|
||||
host_config = self._get_host_config_path(self.spec)
|
||||
options = []
|
||||
options.extend(["-C", host_config, "../spack-src/src/"])
|
||||
options.extend(["-C", host_config])
|
||||
return options
|
||||
|
||||
@run_after("build")
|
||||
@@ -255,6 +264,13 @@ def build_test(self):
|
||||
print("Running Conduit Unit Tests...")
|
||||
make("test")
|
||||
|
||||
# Copy the generated host-config to install directory for downstream use
|
||||
@run_before("install")
|
||||
def copy_host_config(self):
|
||||
src = self._get_host_config_path(self.spec)
|
||||
dst = join_path(self.spec.prefix, os.path.basename(src))
|
||||
copy(src, dst)
|
||||
|
||||
@run_after("install")
|
||||
@on_package_attributes(run_tests=True)
|
||||
def check_install(self):
|
||||
@@ -291,7 +307,8 @@ def _get_host_config_path(self, spec):
|
||||
host_config_path = "{0}-{1}-{2}-conduit-{3}.cmake".format(
|
||||
socket.gethostname(), sys_type, spec.compiler, spec.dag_hash()
|
||||
)
|
||||
dest_dir = spec.prefix
|
||||
|
||||
dest_dir = self.stage.source_path
|
||||
host_config_path = os.path.abspath(join_path(dest_dir, host_config_path))
|
||||
return host_config_path
|
||||
|
||||
@@ -392,15 +409,31 @@ def hostconfig(self):
|
||||
if fflags:
|
||||
cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags))
|
||||
|
||||
# Add various rpath linker flags
|
||||
rpaths = []
|
||||
if self.compiler.extra_rpaths:
|
||||
rpaths += self.compiler.extra_rpaths
|
||||
|
||||
# Note: This is not needed if we add `extra_rpaths` to this compiler spec case
|
||||
if (f_compiler is not None) and ("gfortran" in f_compiler) and ("clang" in cpp_compiler):
|
||||
libdir = os.path.join(os.path.dirname(os.path.dirname(f_compiler)), "lib")
|
||||
flags = ""
|
||||
for _libpath in [libdir, libdir + "64"]:
|
||||
if os.path.exists(_libpath):
|
||||
flags += " -Wl,-rpath,{0}".format(_libpath)
|
||||
description = "Adds a missing libstdc++ rpath"
|
||||
if flags:
|
||||
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags, description))
|
||||
rpaths.append(_libpath)
|
||||
|
||||
linkerflags = ""
|
||||
for rpath in rpaths:
|
||||
linkerflags += "-Wl,-rpath,{} ".format(rpath)
|
||||
cfg.write(cmake_cache_entry("CMAKE_EXE_LINKER_FLAGS", linkerflags))
|
||||
if spec.satisfies("+shared"):
|
||||
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", linkerflags))
|
||||
else:
|
||||
cfg.write(cmake_cache_entry("CMAKE_STATIC_LINKER_FLAGS", linkerflags))
|
||||
|
||||
#######################
|
||||
# BLT
|
||||
#######################
|
||||
cfg.write(cmake_cache_entry("BLT_SOURCE_DIR", spec["blt"].prefix))
|
||||
|
||||
#######################
|
||||
# Examples/Utilities
|
||||
@@ -436,7 +469,7 @@ def hostconfig(self):
|
||||
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags))
|
||||
if spec.satisfies("+shared"):
|
||||
flags = "${CMAKE_SHARED_LINKER_FLAGS} " + rpaths
|
||||
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", flags))
|
||||
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", flags, force=True))
|
||||
|
||||
#######################
|
||||
# Python
|
||||
|
@@ -276,7 +276,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("sirius@7.3:", when="@9.1")
|
||||
depends_on("sirius@7.4:7.5", when="@2023.2")
|
||||
depends_on("sirius@7.5:", when="@2024.1:")
|
||||
|
||||
depends_on("sirius@7.6: +pugixml", when="@2024.2:")
|
||||
with when("+libvori"):
|
||||
depends_on("libvori@201219:", when="@8.1")
|
||||
depends_on("libvori@210412:", when="@8.2:")
|
||||
|
@@ -33,6 +33,7 @@ class Gromacs(CMakePackage, CudaPackage):
|
||||
|
||||
version("main", branch="main")
|
||||
version("master", branch="main", deprecated=True)
|
||||
version("2024.3", sha256="bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029")
|
||||
version("2024.2", sha256="802a7e335f2e895770f57b159e4ec368ebb0ff2ce6daccf706c6e8025c36852b")
|
||||
version("2024.1", sha256="937d8f12a36fffbf2af7add71adbb5aa5c5537892d46c9a76afbecab1aa0aac7")
|
||||
version("2024", sha256="04d226d52066a8bc3a42e00d6213de737b4ec292e26703065924ff01956801e2")
|
||||
|
@@ -359,6 +359,9 @@ def get_paths(self):
|
||||
|
||||
if self.spec.satisfies("@5.7:"):
|
||||
paths["hip-path"] = rocm_prefix
|
||||
if self.spec.satisfies("@6.0:"):
|
||||
paths["hsa-rocr-dev"] = rocm_prefix
|
||||
|
||||
else:
|
||||
paths = {
|
||||
"hip-path": self.spec.prefix,
|
||||
|
@@ -22,7 +22,10 @@ class LinaroForge(Package):
|
||||
homepage = "https://www.linaroforge.com"
|
||||
maintainers("kenche-linaro")
|
||||
|
||||
if platform.machine() in ["aarch64", "arm64"]:
|
||||
if platform.machine() == "aarch64":
|
||||
version(
|
||||
"24.0.4", sha256="d126e4690f7c9bf21e541721dac51dcee1f336a882211426bf98a15d80671e3d"
|
||||
)
|
||||
version(
|
||||
"24.0.3", sha256="5030c5c23824963f82e94ed606e47cce802393fa4cb7757966818baa7012aa21"
|
||||
)
|
||||
@@ -91,6 +94,9 @@ class LinaroForge(Package):
|
||||
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
|
||||
)
|
||||
elif platform.machine() == "x86_64":
|
||||
version(
|
||||
"24.0.4", sha256="001e7b7cd796d8e807971b99a9ca233c24f8fcd6eee4e9b4bbb0ec8560d44f08"
|
||||
)
|
||||
version(
|
||||
"24.0.3", sha256="1796559fb86220d5e17777215d3820f4b04aba271782276b81601d5065284526"
|
||||
)
|
||||
|
@@ -274,12 +274,12 @@ def cmake_args(self):
|
||||
# Make sure that the compiler paths are in the LD_LIBRARY_PATH
|
||||
def setup_run_environment(self, env):
|
||||
llvm_amdgpu_home = self.spec["llvm-amdgpu"].prefix
|
||||
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/llvm/lib")
|
||||
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/lib")
|
||||
|
||||
# Make sure that the compiler paths are in the LD_LIBRARY_PATH
|
||||
def setup_dependent_run_environment(self, env, dependent_spec):
|
||||
llvm_amdgpu_home = self.spec["llvm-amdgpu"].prefix
|
||||
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/llvm/lib")
|
||||
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/lib")
|
||||
|
||||
# Required for enabling asan on dependent packages
|
||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||
|
@@ -106,9 +106,6 @@ class Mfem(Package, CudaPackage, ROCmPackage):
|
||||
extension="tar.gz",
|
||||
)
|
||||
|
||||
# Tagged development version used by xSDK
|
||||
version("4.0.1-xsdk", commit="c55c80d17b82d80de04b849dd526e17044f8c99a")
|
||||
|
||||
version(
|
||||
"4.0.0",
|
||||
sha256="df5bdac798ea84a263979f6fbf79de9013e1c55562f95f98644c3edcacfbc727",
|
||||
@@ -309,8 +306,8 @@ class Mfem(Package, CudaPackage, ROCmPackage):
|
||||
depends_on("sundials@2.7.0+mpi+hypre", when="@:3.3.0+sundials+mpi")
|
||||
depends_on("sundials@2.7.0:", when="@3.3.2:+sundials~mpi")
|
||||
depends_on("sundials@2.7.0:+mpi+hypre", when="@3.3.2:+sundials+mpi")
|
||||
depends_on("sundials@5.0.0:5", when="@4.0.1-xsdk:4.4+sundials~mpi")
|
||||
depends_on("sundials@5.0.0:5+mpi+hypre", when="@4.0.1-xsdk:4.4+sundials+mpi")
|
||||
depends_on("sundials@5.0.0:5", when="@4.1.0:4.4+sundials~mpi")
|
||||
depends_on("sundials@5.0.0:5+mpi+hypre", when="@4.1.0:4.4+sundials+mpi")
|
||||
depends_on("sundials@5.0.0:6.7.0", when="@4.5.0:+sundials~mpi")
|
||||
depends_on("sundials@5.0.0:6.7.0+mpi+hypre", when="@4.5.0:+sundials+mpi")
|
||||
conflicts("cxxstd=11", when="^sundials@6.4.0:")
|
||||
|
@@ -74,10 +74,15 @@ class Mgard(CMakePackage, CudaPackage):
|
||||
|
||||
def flag_handler(self, name, flags):
|
||||
if name == "cxxflags":
|
||||
if self.spec.satisfies("@2020-10-01 %oneapi@2023:"):
|
||||
flags.append("-Wno-error=c++11-narrowing")
|
||||
if self.spec.satisfies("@2020-10-01 %apple-clang@15:"):
|
||||
flags.append("-Wno-error=c++11-narrowing")
|
||||
for a_spec in [
|
||||
"@2020-10-01 %oneapi@2023:",
|
||||
"@2020-10-01 %apple-clang@15:",
|
||||
"@2020-10-01 %aocc@3:",
|
||||
"@2020-10-01 %cce@15:",
|
||||
"@2020-10-01 %rocmcc@4:",
|
||||
]:
|
||||
if self.spec.satisfies(a_spec):
|
||||
flags.append("-Wno-error=c++11-narrowing")
|
||||
return (flags, None, None)
|
||||
|
||||
def cmake_args(self):
|
||||
|
@@ -84,9 +84,9 @@ def libs(self):
|
||||
def setup_run_environment(self, env):
|
||||
# Because MPI implementations provide compilers, they have to add to
|
||||
# their run environments the code to make the compilers available.
|
||||
env.set("MPITRAMPOLINE_CC", self.compiler.cc_names[0])
|
||||
env.set("MPITRAMPOLINE_CXX", self.compiler.cxx_names[0])
|
||||
env.set("MPITRAMPOLINE_FC", self.compiler.fc_names[0])
|
||||
env.set("MPITRAMPOLINE_CC", self.compiler.cc)
|
||||
env.set("MPITRAMPOLINE_CXX", self.compiler.cxx)
|
||||
env.set("MPITRAMPOLINE_FC", self.compiler.fc)
|
||||
env.set("MPICC", join_path(self.prefix.bin, "mpicc"))
|
||||
env.set("MPICXX", join_path(self.prefix.bin, "mpicxx"))
|
||||
env.set("MPIF77", join_path(self.prefix.bin, "mpifc"))
|
||||
|
@@ -88,6 +88,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
|
||||
variant("adios2", default=False, description="Enable ADIOS2 support", when="@5.8:")
|
||||
variant("visitbridge", default=False, description="Enable VisItBridge support")
|
||||
variant("raytracing", default=False, description="Enable Raytracing support")
|
||||
variant("cdi", default=False, description="Enable CDI support")
|
||||
variant(
|
||||
"openpmd",
|
||||
default=False,
|
||||
@@ -234,6 +235,8 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("openimagedenoise", when="+raytracing")
|
||||
depends_on("ospray +mpi", when="+raytracing +mpi")
|
||||
|
||||
depends_on("cdi", when="+cdi")
|
||||
|
||||
depends_on("bzip2")
|
||||
depends_on("double-conversion")
|
||||
depends_on("expat")
|
||||
@@ -706,6 +709,10 @@ def use_x11():
|
||||
cmake_args.append(self.define_from_variant("VTK_ENABLE_OSPRAY", "raytracing"))
|
||||
cmake_args.append(self.define_from_variant("VTKOSPRAY_ENABLE_DENOISER", "raytracing"))
|
||||
|
||||
# CDI
|
||||
cmake_args.append(self.define_from_variant("PARAVIEW_PLUGIN_ENABLE_CDIReader", "cdi"))
|
||||
cmake_args.append(self.define_from_variant("PARAVIEW_PLUGIN_AUTOLOAD_CDIReader", "cdi"))
|
||||
|
||||
return cmake_args
|
||||
|
||||
def test_smoke_test(self):
|
||||
|
@@ -0,0 +1,35 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PerlCompressBzip2(PerlPackage):
|
||||
"""Interface to Bzip2 compression library"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Compress::Bzip2"
|
||||
url = "https://cpan.metacpan.org/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("2.28", sha256="859f835c3f5c998810d8b2a6f9e282ff99d6cb66ccfa55cae7e66dafb035116e")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("bzip2", type=("build", "test", "run"))
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("BZLIB_INCLUDE", self.spec["bzip2"].prefix.include)
|
||||
env.set("BZLIB_LIB", self.spec["bzip2"].prefix.lib)
|
||||
env.set("BZLIB_BIN", self.spec["bzip2"].prefix.bin)
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Compress::Bzip2; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
@@ -23,10 +23,6 @@ class Pflotran(AutotoolsPackage):
|
||||
version("5.0.0", commit="f0fe931c72c03580e489724afeb8c5451406b942") # tag v5.0.0
|
||||
version("4.0.1", commit="fd351a49b687e27f46eae92e9259156eea74897d") # tag v4.0.1
|
||||
version("3.0.2", commit="9e07f416a66b0ad304c720b61aa41cba9a0929d5") # tag v3.0.2
|
||||
version("xsdk-0.6.0", commit="46e14355c1827c057f2e1b3e3ae934119ab023b2")
|
||||
version("xsdk-0.5.0", commit="98a959c591b72f73373febf5f9735d2c523b4c20")
|
||||
version("xsdk-0.4.0", commit="c851cbc94fc56a32cfdb0678f3c24b9936a5584e")
|
||||
version("xsdk-0.3.0", branch="release/xsdk-0.3.0")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
@@ -40,10 +36,6 @@ class Pflotran(AutotoolsPackage):
|
||||
depends_on("petsc@3.20:+hdf5+metis", when="@5.0.0")
|
||||
depends_on("petsc@3.18:+hdf5+metis", when="@4.0.1")
|
||||
depends_on("petsc@3.16:+hdf5+metis", when="@3.0.2")
|
||||
depends_on("petsc@3.14:+hdf5+metis", when="@xsdk-0.6.0")
|
||||
depends_on("petsc@3.12:+hdf5+metis", when="@xsdk-0.5.0")
|
||||
depends_on("petsc@3.10:+hdf5+metis", when="@xsdk-0.4.0")
|
||||
depends_on("petsc@3.8.0:+hdf5+metis", when="@xsdk-0.3.0")
|
||||
|
||||
# https://github.com/spack/spack/pull/37579#issuecomment-1545998141
|
||||
conflicts("^hdf5@1.14.1", when="%oneapi")
|
||||
@@ -55,10 +47,6 @@ def build(self, spec, prefix):
|
||||
else:
|
||||
make("all")
|
||||
|
||||
@property
|
||||
def parallel(self):
|
||||
return self.spec.satisfies("@xsdk-0.4.0:")
|
||||
|
||||
def flag_handler(self, name, flags):
|
||||
if "%gcc@10:" in self.spec and name == "fflags":
|
||||
flags.append("-fallow-argument-mismatch")
|
||||
|
@@ -31,16 +31,16 @@ class Pmix(AutotoolsPackage):
|
||||
while maintaining strict separation between it and the standard
|
||||
itself."""
|
||||
|
||||
homepage = "https://pmix.org"
|
||||
url = "https://github.com/pmix/pmix/releases/download/v3.1.3/pmix-3.1.3.tar.bz2"
|
||||
homepage = "https://openpmix.github.io/"
|
||||
url = "https://github.com/openpmix/openpmix/releases/download/v5.0.3/pmix-5.0.3.tar.bz2"
|
||||
git = "https://github.com/openpmix/openpmix.git"
|
||||
|
||||
maintainers("rhc54")
|
||||
|
||||
license("BSD-3-Clause-Open-MPI")
|
||||
|
||||
# Branches 4.2 & 5.0 will also need submodules
|
||||
version("master", branch="master", submodules=True)
|
||||
version("5.0.3", sha256="3f779434ed59fc3d63e4f77f170605ac3a80cd40b1f324112214b0efbdc34f13")
|
||||
version("5.0.2", sha256="28227ff2ba925da2c3fece44502f23a91446017de0f5a58f5cea9370c514b83c")
|
||||
version("5.0.1", sha256="d4371792d4ba4c791e1010100b4bf9a65500ababaf5ff25d681f938527a67d4a")
|
||||
version("5.0.0", sha256="92a85c4946346816c297ac244fbaf4f723bba87fb7e4424a057c2dabd569928d")
|
||||
@@ -154,40 +154,46 @@ class Pmix(AutotoolsPackage):
|
||||
deprecated=True,
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
|
||||
variant(
|
||||
"pmi_backwards_compatibility",
|
||||
default=True,
|
||||
description="Toggle pmi backwards compatibility",
|
||||
)
|
||||
|
||||
variant("docs", default=False, when="@master", description="Build documentation")
|
||||
variant("munge", default=False, description="Enable MUNGE support")
|
||||
variant("python", default=False, when="@4.1.2:", description="Enable Python bindings")
|
||||
variant(
|
||||
"restful",
|
||||
default=False,
|
||||
when="@4:",
|
||||
description="Allow a PMIx server to request services from " "a system-level REST server",
|
||||
description="Allow a PMIx server to request services from a system-level REST server",
|
||||
)
|
||||
variant(
|
||||
"pmi_backwards_compatibility",
|
||||
default=True,
|
||||
when="@1.2.5:3",
|
||||
description="Enable PMI backwards compatibility",
|
||||
)
|
||||
|
||||
variant("python", default=False, when="@4.1.2:", description="Enable python bindings")
|
||||
|
||||
variant("docs", default=False, description="Build manpages")
|
||||
|
||||
depends_on("m4", type="build", when="@master")
|
||||
depends_on("autoconf", type="build", when="@master")
|
||||
depends_on("automake", type="build", when="@master")
|
||||
depends_on("libtool", type="build", when="@master")
|
||||
depends_on("perl", type="build", when="@master")
|
||||
depends_on("pandoc", type="build", when="+docs")
|
||||
depends_on("c", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
depends_on("m4", type="build", when="@master")
|
||||
depends_on("autoconf@2.69:", type="build", when="@master")
|
||||
depends_on("automake@1.13.4:", type="build", when="@master")
|
||||
depends_on("libtool@2.4.2:", type="build", when="@master")
|
||||
depends_on("flex@2.5.39:", type="build", when="@master")
|
||||
depends_on("perl", type="build", when="@master")
|
||||
depends_on("python@3.7:", type="build", when="+docs")
|
||||
depends_on("py-sphinx@5:", type="build", when="+docs")
|
||||
depends_on("py-recommonmark", type="build", when="+docs")
|
||||
depends_on("py-docutils", type="build", when="+docs")
|
||||
depends_on("py-sphinx-rtd-theme", type="build", when="+docs")
|
||||
|
||||
depends_on("libevent@2.0.20:")
|
||||
depends_on("hwloc@1.0:1", when="@:2")
|
||||
depends_on("hwloc@1.11:1,2:", when="@3:")
|
||||
depends_on("hwloc@1.11:", when="@3:")
|
||||
depends_on("hwloc@1", when="@:2")
|
||||
depends_on("zlib-api", when="@2:")
|
||||
depends_on("curl", when="+restful")
|
||||
depends_on("jansson@2.11:", when="+restful")
|
||||
depends_on("python", when="+python")
|
||||
depends_on("py-cython", when="+python")
|
||||
depends_on("py-setuptools", when="+python")
|
||||
depends_on("munge", when="+munge")
|
||||
|
||||
def autoreconf(self, spec, prefix):
|
||||
"""Only needed when building from git checkout"""
|
||||
@@ -213,7 +219,13 @@ def find_external_lib_path(self, pkg_name, path_match_str=""):
|
||||
def configure_args(self):
|
||||
spec = self.spec
|
||||
|
||||
config_args = ["--enable-shared", "--enable-static", "--disable-sphinx", "--without-munge"]
|
||||
config_args = ["--enable-shared", "--enable-static"]
|
||||
|
||||
if spec.satisfies("~docs") or spec.satisfies("@4.2.3:5"):
|
||||
config_args.append("--disable-sphinx")
|
||||
|
||||
if spec.satisfies("@2:"):
|
||||
config_args.append("--with-zlib=" + spec["zlib-api"].prefix)
|
||||
|
||||
config_args.append("--with-libevent=" + spec["libevent"].prefix)
|
||||
config_args.append("--with-hwloc=" + spec["hwloc"].prefix)
|
||||
@@ -233,15 +245,21 @@ def configure_args(self):
|
||||
|
||||
config_args.extend(self.enable_or_disable("python-bindings", variant="python"))
|
||||
|
||||
if spec.satisfies("+munge"):
|
||||
config_args.append("--with-munge=" + spec["munge"].prefix)
|
||||
else:
|
||||
config_args.append("--without-munge")
|
||||
|
||||
if spec.satisfies("+restful"):
|
||||
config_args.append("--with-curl=" + spec["curl"].prefix)
|
||||
config_args.append("--with-jansson=" + spec["jansson"].prefix)
|
||||
|
||||
config_args.extend(
|
||||
self.enable_or_disable(
|
||||
"pmi-backward-compatibility", variant="pmi_backwards_compatibility"
|
||||
)
|
||||
)
|
||||
|
||||
if "~docs" in self.spec:
|
||||
config_args.append("--disable-man-pages")
|
||||
|
||||
# Versions < 2.1.1 have a bug in the test code that *sometimes*
|
||||
# causes problems on strict alignment architectures such as
|
||||
# aarch64. Work-around is to just not build the test code.
|
||||
|
@@ -32,5 +32,8 @@ class PyGreenlet(PythonPackage):
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("python", type=("build", "link", "run"))
|
||||
with default_args(type=("build", "link", "run")):
|
||||
depends_on("python")
|
||||
depends_on("python@:3.11", when="@:2")
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
@@ -17,6 +17,7 @@ class PyMypy(PythonPackage):
|
||||
|
||||
license("MIT AND PSF-2.0", checked_by="tgamblin")
|
||||
|
||||
version("1.11.2", sha256="7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79")
|
||||
version("1.11.1", sha256="f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08")
|
||||
version("1.10.1", sha256="1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0")
|
||||
version("1.9.0", sha256="3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974")
|
||||
|
@@ -22,7 +22,8 @@ class PyNumcodecs(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("master", branch="master", submodules=True)
|
||||
version("main", branch="main", submodules=True)
|
||||
version("master", branch="main", submodules=True, deprecated=True)
|
||||
version("0.11.0", sha256="6c058b321de84a1729299b0eae4d652b2e48ea1ca7f9df0da65cb13470e635eb")
|
||||
version("0.7.3", sha256="022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85")
|
||||
version("0.6.4", sha256="ef4843d5db4d074e607e9b85156835c10d006afc10e175bda62ff5412fca6e4d")
|
||||
|
@@ -185,7 +185,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
|
||||
# and remove the +tests conflict below.
|
||||
variant("tests", default=False, description="Build tests")
|
||||
|
||||
# we don’t use variants to express the failing test, we only add a variant to
|
||||
# we don't use variants to express the failing test, we only add a variant to
|
||||
# define whether we want to run all the tests (including those known to fail)
|
||||
# or only the passing ones.
|
||||
variant(
|
||||
|
@@ -23,6 +23,7 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage):
|
||||
version("develop", branch="develop")
|
||||
version("master", branch="master")
|
||||
|
||||
version("7.6.0", sha256="e424206fecb35bb2082b5c87f0865a9536040e984b88b041e6f7d531f8a65b20")
|
||||
version("7.5.2", sha256="9ae01935578532c84f1d0d673dbbcdd490e26be22efa6c4acf7129f9dc1a0c60")
|
||||
version("7.5.1", sha256="aadfa7976e90a109aeb1677042454388a8d1a50d75834d59c86c8aef06bc12e4")
|
||||
version("7.5.0", sha256="c583f88ffc02e9acac24e786bc35c7c32066882d2f70a1e0c14b5780b510365d")
|
||||
|
@@ -20,6 +20,8 @@ class SpectrumMpi(BundlePackage):
|
||||
|
||||
provides("mpi")
|
||||
|
||||
conflicts("platform=windows")
|
||||
|
||||
executables = ["^ompi_info$"]
|
||||
|
||||
@classmethod
|
||||
|
@@ -204,25 +204,21 @@ def set_compiler_options(self, spec):
|
||||
# ('CC', 'CXX' and 'FC')
|
||||
# 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with
|
||||
# system compiler silently
|
||||
# (regardless of what %<compiler> is used in the spec)
|
||||
# 5 - On cray gnu compilers are not provied by self.compilers
|
||||
# Checking GCC_PATH will work if spack loads the gcc module
|
||||
#
|
||||
# In the following we give TAU what he expects and put compilers into
|
||||
# PATH
|
||||
compiler_path = os.path.dirname(self.compiler.cc)
|
||||
if not compiler_path and self.compiler.cc_names[0] == "gcc":
|
||||
compiler_path = os.environ.get("GCC_PATH", "")
|
||||
if compiler_path:
|
||||
compiler_path = compiler_path + "/bin/"
|
||||
os.environ["PATH"] = ":".join([compiler_path, os.environ["PATH"]])
|
||||
compiler_options = [
|
||||
"-c++=%s" % os.path.basename(self.compiler.cxx),
|
||||
"-cc=%s" % os.path.basename(self.compiler.cc),
|
||||
]
|
||||
compiler_flags: Dict[str, str] = {
|
||||
flag: os.path.basename(getattr(self.compiler, compiler))
|
||||
for flag, compiler in (("-cc", "cc"), ("-c++", "cxx"), ("-fortran", "fc"))
|
||||
if getattr(self.compiler, compiler)
|
||||
}
|
||||
|
||||
if "+fortran" in spec and self.compiler.fc:
|
||||
compiler_options.append("-fortran=%s" % os.path.basename(self.compiler.fc))
|
||||
if "~fortran" in spec:
|
||||
compiler_flags.pop("-fortran", None)
|
||||
|
||||
# tau does not understand `craycc`, `crayCC`, `crayftn`, strip off the `cray` prefix
|
||||
for flag, value in compiler_flags.items():
|
||||
if value.startswith("cray"):
|
||||
compiler_flags[flag] = value[4:]
|
||||
|
||||
compiler_options = [f"{flag}={value}" for flag, value in compiler_flags.items()]
|
||||
|
||||
##########
|
||||
|
||||
|
@@ -128,6 +128,12 @@ class Vtk(CMakePackage):
|
||||
|
||||
depends_on("xz")
|
||||
patch("vtk_find_liblzma.patch", when="@8.2")
|
||||
patch(
|
||||
"https://gitlab.kitware.com/vtk/vtk/-/commit/2100772c7840a712c61952afebe84ec4cae174eb.diff",
|
||||
sha256="82a7d17535e732aa97e3cf895d8728f5fb42325a0cdae5befdb3a25bdb1615eb",
|
||||
when="@9.0",
|
||||
)
|
||||
|
||||
patch("vtk_movie_link_ogg.patch", when="@8.2")
|
||||
patch("vtk_use_sqlite_name_vtk_expects.patch", when="@8.2")
|
||||
patch("vtk_proj_include_no_strict.patch", when="@9: platform=windows")
|
||||
|
Reference in New Issue
Block a user