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).
|
#. ``env``. The user environment (usually ``os.environ`` in Python).
|
||||||
|
|
||||||
#. ``hostname``. The hostname of the system (if ``hostname`` is an
|
#. ``hostname``. The hostname of the system.
|
||||||
executable in the user's PATH).
|
|
||||||
|
#. ``full_hostname``. The fully qualified hostname of the system.
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SpecLists as Constraints
|
SpecLists as Constraints
|
||||||
|
@@ -843,20 +843,19 @@ def uniq(sequence):
|
|||||||
return uniq_list
|
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,
|
"""Takes a long list and limits it to a smaller number of elements,
|
||||||
replacing intervening elements with '...'. For example::
|
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::
|
gives::
|
||||||
|
|
||||||
[1, 2, 3, '...', 6]
|
["1", "2", "3", "...", "6"]
|
||||||
"""
|
"""
|
||||||
if len(line_list) > max_num:
|
if len(line_list) > max_num:
|
||||||
return line_list[: max_num - 1] + ["..."] + line_list[-1:]
|
return [*line_list[: max_num - 1], "...", line_list[-1]]
|
||||||
else:
|
return line_list
|
||||||
return line_list
|
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
|
@@ -2561,7 +2561,6 @@ def install_root_node(spec, unsigned=False, force=False, sha256=None):
|
|||||||
with spack.util.path.filter_padding():
|
with spack.util.path.filter_padding():
|
||||||
tty.msg('Installing "{0}" from a buildcache'.format(spec.format()))
|
tty.msg('Installing "{0}" from a buildcache'.format(spec.format()))
|
||||||
extract_tarball(spec, download_result, force)
|
extract_tarball(spec, download_result, force)
|
||||||
spec.package.windows_establish_runtime_linkage()
|
|
||||||
spack.hooks.post_install(spec, False)
|
spack.hooks.post_install(spec, False)
|
||||||
spack.store.STORE.db.add(spec, spack.store.STORE.layout)
|
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):
|
if _supports_compilation_databases(pkg):
|
||||||
args.append(CMakeBuilder.define("CMAKE_EXPORT_COMPILE_COMMANDS", True))
|
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):
|
def generator(*names: str, default: Optional[str] = None):
|
||||||
"""The build system generator to use.
|
"""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"
|
"The following {} specs were skipped as they already exist in the buildcache:\n"
|
||||||
" {}\n"
|
" {}\n"
|
||||||
" Use --force to overwrite them.".format(
|
" 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]
|
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
|
@llnl.util.lang.memoized
|
||||||
def class_for_compiler_name(compiler_name):
|
def class_for_compiler_name(compiler_name):
|
||||||
"""Given a compiler module name, get the corresponding Compiler class."""
|
"""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():
|
with timer.measure("install"), spack.util.path.filter_padding():
|
||||||
binary_distribution.extract_tarball(pkg.spec, download_result, force=False, timer=timer)
|
binary_distribution.extract_tarball(pkg.spec, download_result, force=False, timer=timer)
|
||||||
pkg.windows_establish_runtime_linkage()
|
|
||||||
|
|
||||||
if hasattr(pkg, "_post_buildcache_install_hook"):
|
if hasattr(pkg, "_post_buildcache_install_hook"):
|
||||||
pkg._post_buildcache_install_hook()
|
pkg._post_buildcache_install_hook()
|
||||||
|
@@ -1467,6 +1467,7 @@ def do_fetch(self, mirror_only=False):
|
|||||||
checksum
|
checksum
|
||||||
and (self.version not in self.versions)
|
and (self.version not in self.versions)
|
||||||
and (not isinstance(self.version, GitVersion))
|
and (not isinstance(self.version, GitVersion))
|
||||||
|
and ("dev_path" not in self.spec.variants)
|
||||||
):
|
):
|
||||||
tty.warn(
|
tty.warn(
|
||||||
"There is no checksum on file to fetch %s safely."
|
"There is no checksum on file to fetch %s safely."
|
||||||
|
@@ -4892,6 +4892,7 @@ def get_host_environment() -> Dict[str, Any]:
|
|||||||
"architecture": arch_spec,
|
"architecture": arch_spec,
|
||||||
"arch_str": str(arch_spec),
|
"arch_str": str(arch_spec),
|
||||||
"hostname": socket.gethostname(),
|
"hostname": socket.gethostname(),
|
||||||
|
"full_hostname": socket.getfqdn(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -42,25 +42,6 @@ def test_multiple_conflicting_compiler_definitions(mutable_config):
|
|||||||
assert cmp.f77 == "f77"
|
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():
|
def test_compiler_flags_from_config_are_grouped():
|
||||||
compiler_entry = {
|
compiler_entry = {
|
||||||
"spec": "intel@17.0.2",
|
"spec": "intel@17.0.2",
|
||||||
|
@@ -275,9 +275,9 @@ def streamify(arg, mode):
|
|||||||
long_msg = cmd_line_string + f"\n{result}"
|
long_msg = cmd_line_string + f"\n{result}"
|
||||||
if fail_on_error:
|
if fail_on_error:
|
||||||
raise ProcessTimeoutError(
|
raise ProcessTimeoutError(
|
||||||
f"\nProcess timed out after {timeout}s"
|
f"\nProcess timed out after {timeout}s. "
|
||||||
f"We expected the following command to run quickly but\
|
"We expected the following command to run quickly but it did not, "
|
||||||
it did not, please report this as an issue: {long_msg}",
|
f"please report this as an issue: {long_msg}",
|
||||||
long_message=long_msg,
|
long_message=long_msg,
|
||||||
) from te
|
) from te
|
||||||
|
|
||||||
|
@@ -885,6 +885,7 @@ e4s-cray-rhel-generate:
|
|||||||
extends: [ ".generate-cray-rhel", ".e4s-cray-rhel" ]
|
extends: [ ".generate-cray-rhel", ".e4s-cray-rhel" ]
|
||||||
|
|
||||||
e4s-cray-rhel-build:
|
e4s-cray-rhel-build:
|
||||||
|
allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
|
||||||
extends: [ ".build", ".e4s-cray-rhel" ]
|
extends: [ ".build", ".e4s-cray-rhel" ]
|
||||||
trigger:
|
trigger:
|
||||||
include:
|
include:
|
||||||
@@ -907,6 +908,7 @@ e4s-cray-sles-generate:
|
|||||||
extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
|
extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
|
||||||
|
|
||||||
e4s-cray-sles-build:
|
e4s-cray-sles-build:
|
||||||
|
allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
|
||||||
extends: [ ".build", ".e4s-cray-sles" ]
|
extends: [ ".build", ".e4s-cray-sles" ]
|
||||||
trigger:
|
trigger:
|
||||||
include:
|
include:
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
spack:
|
spack:
|
||||||
view: false
|
view: false
|
||||||
specs:
|
specs:
|
||||||
- vtk
|
- vtk~mpi
|
||||||
|
|
||||||
cdash:
|
cdash:
|
||||||
build-group: Windows Visualization (Kitware)
|
build-group: Windows Visualization (Kitware)
|
||||||
|
@@ -21,8 +21,6 @@ class Alquimia(CMakePackage):
|
|||||||
version("1.1.0", commit="211931c3e76b1ae7cdb48c46885b248412d6fe3d") # tag v1.1.0
|
version("1.1.0", commit="211931c3e76b1ae7cdb48c46885b248412d6fe3d") # tag v1.1.0
|
||||||
version("1.0.10", commit="b2c11b6cde321f4a495ef9fcf267cb4c7a9858a0") # tag v.1.0.10
|
version("1.0.10", commit="b2c11b6cde321f4a495ef9fcf267cb4c7a9858a0") # tag v.1.0.10
|
||||||
version("1.0.9", commit="2ee3bcfacc63f685864bcac2b6868b48ad235225") # tag v.1.0.9
|
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("c", type="build") # generated
|
||||||
depends_on("cxx", 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@5.0.0", when="@1.1.0")
|
||||||
depends_on("pflotran@4.0.1", when="@1.0.10")
|
depends_on("pflotran@4.0.1", when="@1.0.10")
|
||||||
depends_on("pflotran@3.0.2", when="@1.0.9")
|
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("pflotran@develop", when="@develop")
|
||||||
depends_on("petsc@3.10:", when="@develop")
|
depends_on("petsc@3.10:", when="@develop")
|
||||||
|
|
||||||
|
@@ -497,7 +497,7 @@ def bjam_python_line(self, spec):
|
|||||||
spec["python"].libs[0],
|
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)
|
boost_toolset_id = self.determine_toolset(spec)
|
||||||
|
|
||||||
# Arm compiler bootstraps with 'gcc' (but builds as 'clang')
|
# 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")
|
options.append("--with-toolset=gcc")
|
||||||
else:
|
else:
|
||||||
options.append("--with-toolset=%s" % boost_toolset_id)
|
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"):
|
if spec.satisfies("+python"):
|
||||||
options.append("--with-python=%s" % spec["python"].command.path)
|
options.append("--with-python=%s" % spec["python"].command.path)
|
||||||
@@ -677,43 +680,46 @@ def install(self, spec, prefix):
|
|||||||
env["PATH"] = newdir + ":" + env["PATH"]
|
env["PATH"] = newdir + ":" + env["PATH"]
|
||||||
|
|
||||||
with_libs = list()
|
with_libs = list()
|
||||||
|
without_libs = list()
|
||||||
for lib in Boost.all_libs:
|
for lib in Boost.all_libs:
|
||||||
if "+{0}".format(lib) in spec:
|
if "+{0}".format(lib) in spec:
|
||||||
with_libs.append(lib)
|
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
|
# Remove libraries that the release version does not support
|
||||||
if spec.satisfies("@1.69.0:") and "signals" in with_libs:
|
if spec.satisfies("@1.69.0:"):
|
||||||
with_libs.remove("signals")
|
remove_if_in_list("signals", with_libs)
|
||||||
if not spec.satisfies("@1.54.0:") and "log" in with_libs:
|
remove_if_in_list("signals", without_libs)
|
||||||
with_libs.remove("log")
|
if not spec.satisfies("@1.54.0:"):
|
||||||
if not spec.satisfies("@1.53.0:") and "atomic" in with_libs:
|
remove_if_in_list("log", with_libs)
|
||||||
with_libs.remove("atomic")
|
remove_if_in_list("log", without_libs)
|
||||||
if not spec.satisfies("@1.48.0:") and "locale" in with_libs:
|
if not spec.satisfies("@1.53.0:"):
|
||||||
with_libs.remove("locale")
|
remove_if_in_list("atomic", with_libs)
|
||||||
if not spec.satisfies("@1.47.0:") and "chrono" in with_libs:
|
remove_if_in_list("atomic", without_libs)
|
||||||
with_libs.remove("chrono")
|
if not spec.satisfies("@1.48.0:"):
|
||||||
if not spec.satisfies("@1.43.0:") and "random" in with_libs:
|
remove_if_in_list("locale", with_libs)
|
||||||
with_libs.remove("random")
|
remove_if_in_list("locale", without_libs)
|
||||||
if not spec.satisfies("@1.39.0:") and "exception" in with_libs:
|
if not spec.satisfies("@1.47.0:"):
|
||||||
with_libs.remove("exception")
|
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"):
|
if spec.satisfies("+graph") and spec.satisfies("+mpi"):
|
||||||
with_libs.append("graph_parallel")
|
with_libs.append("graph_parallel")
|
||||||
|
remove_if_in_list("graph_parallel", without_libs)
|
||||||
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
|
|
||||||
|
|
||||||
# to make Boost find the user-config.jam
|
# to make Boost find the user-config.jam
|
||||||
env["BOOST_BUILD_PATH"] = self.stage.source_path
|
env["BOOST_BUILD_PATH"] = self.stage.source_path
|
||||||
|
|
||||||
bootstrap_options = ["--prefix=%s" % prefix]
|
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"):
|
if self.spec.satisfies("platform=windows"):
|
||||||
bootstrap = Executable("cmd.exe")
|
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 *
|
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
|
Helper that creates CMake cache entry strings used in
|
||||||
'host-config' files.
|
'host-config' files.
|
||||||
@@ -24,7 +24,8 @@ def cmake_cache_entry(name, value, vtype=None):
|
|||||||
vtype = "BOOL"
|
vtype = "BOOL"
|
||||||
else:
|
else:
|
||||||
vtype = "PATH"
|
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):
|
class Conduit(CMakePackage):
|
||||||
@@ -76,6 +77,8 @@ class Conduit(CMakePackage):
|
|||||||
|
|
||||||
maintainers("cyrush")
|
maintainers("cyrush")
|
||||||
|
|
||||||
|
root_cmakelists_dir = "src"
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# package variants
|
# package variants
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@@ -121,6 +124,12 @@ class Conduit(CMakePackage):
|
|||||||
# package dependencies
|
# package dependencies
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# BLT
|
||||||
|
#######################
|
||||||
|
depends_on("blt", type="build")
|
||||||
|
depends_on("blt@0.6.2:", type="build", when="@0.9:")
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# CMake
|
# CMake
|
||||||
#######################
|
#######################
|
||||||
@@ -245,7 +254,7 @@ def url_for_version(self, version):
|
|||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
host_config = self._get_host_config_path(self.spec)
|
host_config = self._get_host_config_path(self.spec)
|
||||||
options = []
|
options = []
|
||||||
options.extend(["-C", host_config, "../spack-src/src/"])
|
options.extend(["-C", host_config])
|
||||||
return options
|
return options
|
||||||
|
|
||||||
@run_after("build")
|
@run_after("build")
|
||||||
@@ -255,6 +264,13 @@ def build_test(self):
|
|||||||
print("Running Conduit Unit Tests...")
|
print("Running Conduit Unit Tests...")
|
||||||
make("test")
|
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")
|
@run_after("install")
|
||||||
@on_package_attributes(run_tests=True)
|
@on_package_attributes(run_tests=True)
|
||||||
def check_install(self):
|
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(
|
host_config_path = "{0}-{1}-{2}-conduit-{3}.cmake".format(
|
||||||
socket.gethostname(), sys_type, spec.compiler, spec.dag_hash()
|
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))
|
host_config_path = os.path.abspath(join_path(dest_dir, host_config_path))
|
||||||
return host_config_path
|
return host_config_path
|
||||||
|
|
||||||
@@ -392,15 +409,31 @@ def hostconfig(self):
|
|||||||
if fflags:
|
if fflags:
|
||||||
cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", 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):
|
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")
|
libdir = os.path.join(os.path.dirname(os.path.dirname(f_compiler)), "lib")
|
||||||
flags = ""
|
|
||||||
for _libpath in [libdir, libdir + "64"]:
|
for _libpath in [libdir, libdir + "64"]:
|
||||||
if os.path.exists(_libpath):
|
if os.path.exists(_libpath):
|
||||||
flags += " -Wl,-rpath,{0}".format(_libpath)
|
rpaths.append(_libpath)
|
||||||
description = "Adds a missing libstdc++ rpath"
|
|
||||||
if flags:
|
linkerflags = ""
|
||||||
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags, description))
|
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
|
# Examples/Utilities
|
||||||
@@ -436,7 +469,7 @@ def hostconfig(self):
|
|||||||
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags))
|
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags))
|
||||||
if spec.satisfies("+shared"):
|
if spec.satisfies("+shared"):
|
||||||
flags = "${CMAKE_SHARED_LINKER_FLAGS} " + rpaths
|
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
|
# Python
|
||||||
|
@@ -276,7 +276,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("sirius@7.3:", when="@9.1")
|
depends_on("sirius@7.3:", when="@9.1")
|
||||||
depends_on("sirius@7.4:7.5", when="@2023.2")
|
depends_on("sirius@7.4:7.5", when="@2023.2")
|
||||||
depends_on("sirius@7.5:", when="@2024.1:")
|
depends_on("sirius@7.5:", when="@2024.1:")
|
||||||
|
depends_on("sirius@7.6: +pugixml", when="@2024.2:")
|
||||||
with when("+libvori"):
|
with when("+libvori"):
|
||||||
depends_on("libvori@201219:", when="@8.1")
|
depends_on("libvori@201219:", when="@8.1")
|
||||||
depends_on("libvori@210412:", when="@8.2:")
|
depends_on("libvori@210412:", when="@8.2:")
|
||||||
|
@@ -33,6 +33,7 @@ class Gromacs(CMakePackage, CudaPackage):
|
|||||||
|
|
||||||
version("main", branch="main")
|
version("main", branch="main")
|
||||||
version("master", branch="main", deprecated=True)
|
version("master", branch="main", deprecated=True)
|
||||||
|
version("2024.3", sha256="bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029")
|
||||||
version("2024.2", sha256="802a7e335f2e895770f57b159e4ec368ebb0ff2ce6daccf706c6e8025c36852b")
|
version("2024.2", sha256="802a7e335f2e895770f57b159e4ec368ebb0ff2ce6daccf706c6e8025c36852b")
|
||||||
version("2024.1", sha256="937d8f12a36fffbf2af7add71adbb5aa5c5537892d46c9a76afbecab1aa0aac7")
|
version("2024.1", sha256="937d8f12a36fffbf2af7add71adbb5aa5c5537892d46c9a76afbecab1aa0aac7")
|
||||||
version("2024", sha256="04d226d52066a8bc3a42e00d6213de737b4ec292e26703065924ff01956801e2")
|
version("2024", sha256="04d226d52066a8bc3a42e00d6213de737b4ec292e26703065924ff01956801e2")
|
||||||
|
@@ -359,6 +359,9 @@ def get_paths(self):
|
|||||||
|
|
||||||
if self.spec.satisfies("@5.7:"):
|
if self.spec.satisfies("@5.7:"):
|
||||||
paths["hip-path"] = rocm_prefix
|
paths["hip-path"] = rocm_prefix
|
||||||
|
if self.spec.satisfies("@6.0:"):
|
||||||
|
paths["hsa-rocr-dev"] = rocm_prefix
|
||||||
|
|
||||||
else:
|
else:
|
||||||
paths = {
|
paths = {
|
||||||
"hip-path": self.spec.prefix,
|
"hip-path": self.spec.prefix,
|
||||||
|
@@ -22,7 +22,10 @@ class LinaroForge(Package):
|
|||||||
homepage = "https://www.linaroforge.com"
|
homepage = "https://www.linaroforge.com"
|
||||||
maintainers("kenche-linaro")
|
maintainers("kenche-linaro")
|
||||||
|
|
||||||
if platform.machine() in ["aarch64", "arm64"]:
|
if platform.machine() == "aarch64":
|
||||||
|
version(
|
||||||
|
"24.0.4", sha256="d126e4690f7c9bf21e541721dac51dcee1f336a882211426bf98a15d80671e3d"
|
||||||
|
)
|
||||||
version(
|
version(
|
||||||
"24.0.3", sha256="5030c5c23824963f82e94ed606e47cce802393fa4cb7757966818baa7012aa21"
|
"24.0.3", sha256="5030c5c23824963f82e94ed606e47cce802393fa4cb7757966818baa7012aa21"
|
||||||
)
|
)
|
||||||
@@ -91,6 +94,9 @@ class LinaroForge(Package):
|
|||||||
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
|
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
|
||||||
)
|
)
|
||||||
elif platform.machine() == "x86_64":
|
elif platform.machine() == "x86_64":
|
||||||
|
version(
|
||||||
|
"24.0.4", sha256="001e7b7cd796d8e807971b99a9ca233c24f8fcd6eee4e9b4bbb0ec8560d44f08"
|
||||||
|
)
|
||||||
version(
|
version(
|
||||||
"24.0.3", sha256="1796559fb86220d5e17777215d3820f4b04aba271782276b81601d5065284526"
|
"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
|
# Make sure that the compiler paths are in the LD_LIBRARY_PATH
|
||||||
def setup_run_environment(self, env):
|
def setup_run_environment(self, env):
|
||||||
llvm_amdgpu_home = self.spec["llvm-amdgpu"].prefix
|
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
|
# Make sure that the compiler paths are in the LD_LIBRARY_PATH
|
||||||
def setup_dependent_run_environment(self, env, dependent_spec):
|
def setup_dependent_run_environment(self, env, dependent_spec):
|
||||||
llvm_amdgpu_home = self.spec["llvm-amdgpu"].prefix
|
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
|
# Required for enabling asan on dependent packages
|
||||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||||
|
@@ -106,9 +106,6 @@ class Mfem(Package, CudaPackage, ROCmPackage):
|
|||||||
extension="tar.gz",
|
extension="tar.gz",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Tagged development version used by xSDK
|
|
||||||
version("4.0.1-xsdk", commit="c55c80d17b82d80de04b849dd526e17044f8c99a")
|
|
||||||
|
|
||||||
version(
|
version(
|
||||||
"4.0.0",
|
"4.0.0",
|
||||||
sha256="df5bdac798ea84a263979f6fbf79de9013e1c55562f95f98644c3edcacfbc727",
|
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+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:", when="@3.3.2:+sundials~mpi")
|
||||||
depends_on("sundials@2.7.0:+mpi+hypre", 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", when="@4.1.0: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+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", when="@4.5.0:+sundials~mpi")
|
||||||
depends_on("sundials@5.0.0:6.7.0+mpi+hypre", 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:")
|
conflicts("cxxstd=11", when="^sundials@6.4.0:")
|
||||||
|
@@ -74,10 +74,15 @@ class Mgard(CMakePackage, CudaPackage):
|
|||||||
|
|
||||||
def flag_handler(self, name, flags):
|
def flag_handler(self, name, flags):
|
||||||
if name == "cxxflags":
|
if name == "cxxflags":
|
||||||
if self.spec.satisfies("@2020-10-01 %oneapi@2023:"):
|
for a_spec in [
|
||||||
flags.append("-Wno-error=c++11-narrowing")
|
"@2020-10-01 %oneapi@2023:",
|
||||||
if self.spec.satisfies("@2020-10-01 %apple-clang@15:"):
|
"@2020-10-01 %apple-clang@15:",
|
||||||
flags.append("-Wno-error=c++11-narrowing")
|
"@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)
|
return (flags, None, None)
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
|
@@ -84,9 +84,9 @@ def libs(self):
|
|||||||
def setup_run_environment(self, env):
|
def setup_run_environment(self, env):
|
||||||
# Because MPI implementations provide compilers, they have to add to
|
# Because MPI implementations provide compilers, they have to add to
|
||||||
# their run environments the code to make the compilers available.
|
# their run environments the code to make the compilers available.
|
||||||
env.set("MPITRAMPOLINE_CC", self.compiler.cc_names[0])
|
env.set("MPITRAMPOLINE_CC", self.compiler.cc)
|
||||||
env.set("MPITRAMPOLINE_CXX", self.compiler.cxx_names[0])
|
env.set("MPITRAMPOLINE_CXX", self.compiler.cxx)
|
||||||
env.set("MPITRAMPOLINE_FC", self.compiler.fc_names[0])
|
env.set("MPITRAMPOLINE_FC", self.compiler.fc)
|
||||||
env.set("MPICC", join_path(self.prefix.bin, "mpicc"))
|
env.set("MPICC", join_path(self.prefix.bin, "mpicc"))
|
||||||
env.set("MPICXX", join_path(self.prefix.bin, "mpicxx"))
|
env.set("MPICXX", join_path(self.prefix.bin, "mpicxx"))
|
||||||
env.set("MPIF77", join_path(self.prefix.bin, "mpifc"))
|
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("adios2", default=False, description="Enable ADIOS2 support", when="@5.8:")
|
||||||
variant("visitbridge", default=False, description="Enable VisItBridge support")
|
variant("visitbridge", default=False, description="Enable VisItBridge support")
|
||||||
variant("raytracing", default=False, description="Enable Raytracing support")
|
variant("raytracing", default=False, description="Enable Raytracing support")
|
||||||
|
variant("cdi", default=False, description="Enable CDI support")
|
||||||
variant(
|
variant(
|
||||||
"openpmd",
|
"openpmd",
|
||||||
default=False,
|
default=False,
|
||||||
@@ -234,6 +235,8 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("openimagedenoise", when="+raytracing")
|
depends_on("openimagedenoise", when="+raytracing")
|
||||||
depends_on("ospray +mpi", when="+raytracing +mpi")
|
depends_on("ospray +mpi", when="+raytracing +mpi")
|
||||||
|
|
||||||
|
depends_on("cdi", when="+cdi")
|
||||||
|
|
||||||
depends_on("bzip2")
|
depends_on("bzip2")
|
||||||
depends_on("double-conversion")
|
depends_on("double-conversion")
|
||||||
depends_on("expat")
|
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("VTK_ENABLE_OSPRAY", "raytracing"))
|
||||||
cmake_args.append(self.define_from_variant("VTKOSPRAY_ENABLE_DENOISER", "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
|
return cmake_args
|
||||||
|
|
||||||
def test_smoke_test(self):
|
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("5.0.0", commit="f0fe931c72c03580e489724afeb8c5451406b942") # tag v5.0.0
|
||||||
version("4.0.1", commit="fd351a49b687e27f46eae92e9259156eea74897d") # tag v4.0.1
|
version("4.0.1", commit="fd351a49b687e27f46eae92e9259156eea74897d") # tag v4.0.1
|
||||||
version("3.0.2", commit="9e07f416a66b0ad304c720b61aa41cba9a0929d5") # tag v3.0.2
|
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("c", type="build") # generated
|
||||||
depends_on("cxx", 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.20:+hdf5+metis", when="@5.0.0")
|
||||||
depends_on("petsc@3.18:+hdf5+metis", when="@4.0.1")
|
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.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
|
# https://github.com/spack/spack/pull/37579#issuecomment-1545998141
|
||||||
conflicts("^hdf5@1.14.1", when="%oneapi")
|
conflicts("^hdf5@1.14.1", when="%oneapi")
|
||||||
@@ -55,10 +47,6 @@ def build(self, spec, prefix):
|
|||||||
else:
|
else:
|
||||||
make("all")
|
make("all")
|
||||||
|
|
||||||
@property
|
|
||||||
def parallel(self):
|
|
||||||
return self.spec.satisfies("@xsdk-0.4.0:")
|
|
||||||
|
|
||||||
def flag_handler(self, name, flags):
|
def flag_handler(self, name, flags):
|
||||||
if "%gcc@10:" in self.spec and name == "fflags":
|
if "%gcc@10:" in self.spec and name == "fflags":
|
||||||
flags.append("-fallow-argument-mismatch")
|
flags.append("-fallow-argument-mismatch")
|
||||||
|
@@ -31,16 +31,16 @@ class Pmix(AutotoolsPackage):
|
|||||||
while maintaining strict separation between it and the standard
|
while maintaining strict separation between it and the standard
|
||||||
itself."""
|
itself."""
|
||||||
|
|
||||||
homepage = "https://pmix.org"
|
homepage = "https://openpmix.github.io/"
|
||||||
url = "https://github.com/pmix/pmix/releases/download/v3.1.3/pmix-3.1.3.tar.bz2"
|
url = "https://github.com/openpmix/openpmix/releases/download/v5.0.3/pmix-5.0.3.tar.bz2"
|
||||||
git = "https://github.com/openpmix/openpmix.git"
|
git = "https://github.com/openpmix/openpmix.git"
|
||||||
|
|
||||||
maintainers("rhc54")
|
maintainers("rhc54")
|
||||||
|
|
||||||
license("BSD-3-Clause-Open-MPI")
|
license("BSD-3-Clause-Open-MPI")
|
||||||
|
|
||||||
# Branches 4.2 & 5.0 will also need submodules
|
|
||||||
version("master", branch="master", submodules=True)
|
version("master", branch="master", submodules=True)
|
||||||
|
version("5.0.3", sha256="3f779434ed59fc3d63e4f77f170605ac3a80cd40b1f324112214b0efbdc34f13")
|
||||||
version("5.0.2", sha256="28227ff2ba925da2c3fece44502f23a91446017de0f5a58f5cea9370c514b83c")
|
version("5.0.2", sha256="28227ff2ba925da2c3fece44502f23a91446017de0f5a58f5cea9370c514b83c")
|
||||||
version("5.0.1", sha256="d4371792d4ba4c791e1010100b4bf9a65500ababaf5ff25d681f938527a67d4a")
|
version("5.0.1", sha256="d4371792d4ba4c791e1010100b4bf9a65500ababaf5ff25d681f938527a67d4a")
|
||||||
version("5.0.0", sha256="92a85c4946346816c297ac244fbaf4f723bba87fb7e4424a057c2dabd569928d")
|
version("5.0.0", sha256="92a85c4946346816c297ac244fbaf4f723bba87fb7e4424a057c2dabd569928d")
|
||||||
@@ -154,40 +154,46 @@ class Pmix(AutotoolsPackage):
|
|||||||
deprecated=True,
|
deprecated=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
depends_on("c", type="build") # generated
|
variant("docs", default=False, when="@master", description="Build documentation")
|
||||||
|
variant("munge", default=False, description="Enable MUNGE support")
|
||||||
variant(
|
variant("python", default=False, when="@4.1.2:", description="Enable Python bindings")
|
||||||
"pmi_backwards_compatibility",
|
|
||||||
default=True,
|
|
||||||
description="Toggle pmi backwards compatibility",
|
|
||||||
)
|
|
||||||
|
|
||||||
variant(
|
variant(
|
||||||
"restful",
|
"restful",
|
||||||
default=False,
|
default=False,
|
||||||
when="@4:",
|
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")
|
depends_on("c", type="build")
|
||||||
|
|
||||||
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("pkgconfig", 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("libevent@2.0.20:")
|
||||||
depends_on("hwloc@1.0:1", when="@:2")
|
depends_on("hwloc@1.11:", when="@3:")
|
||||||
depends_on("hwloc@1.11:1,2:", when="@3:")
|
depends_on("hwloc@1", when="@:2")
|
||||||
|
depends_on("zlib-api", when="@2:")
|
||||||
depends_on("curl", when="+restful")
|
depends_on("curl", when="+restful")
|
||||||
depends_on("jansson@2.11:", when="+restful")
|
depends_on("jansson@2.11:", when="+restful")
|
||||||
depends_on("python", when="+python")
|
depends_on("python", when="+python")
|
||||||
depends_on("py-cython", when="+python")
|
depends_on("py-cython", when="+python")
|
||||||
|
depends_on("py-setuptools", when="+python")
|
||||||
|
depends_on("munge", when="+munge")
|
||||||
|
|
||||||
def autoreconf(self, spec, prefix):
|
def autoreconf(self, spec, prefix):
|
||||||
"""Only needed when building from git checkout"""
|
"""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):
|
def configure_args(self):
|
||||||
spec = self.spec
|
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-libevent=" + spec["libevent"].prefix)
|
||||||
config_args.append("--with-hwloc=" + spec["hwloc"].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"))
|
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(
|
config_args.extend(
|
||||||
self.enable_or_disable(
|
self.enable_or_disable(
|
||||||
"pmi-backward-compatibility", variant="pmi_backwards_compatibility"
|
"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*
|
# Versions < 2.1.1 have a bug in the test code that *sometimes*
|
||||||
# causes problems on strict alignment architectures such as
|
# causes problems on strict alignment architectures such as
|
||||||
# aarch64. Work-around is to just not build the test code.
|
# 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("c", type="build") # generated
|
||||||
depends_on("cxx", 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")
|
depends_on("py-setuptools", type="build")
|
||||||
|
@@ -17,6 +17,7 @@ class PyMypy(PythonPackage):
|
|||||||
|
|
||||||
license("MIT AND PSF-2.0", checked_by="tgamblin")
|
license("MIT AND PSF-2.0", checked_by="tgamblin")
|
||||||
|
|
||||||
|
version("1.11.2", sha256="7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79")
|
||||||
version("1.11.1", sha256="f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08")
|
version("1.11.1", sha256="f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08")
|
||||||
version("1.10.1", sha256="1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0")
|
version("1.10.1", sha256="1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0")
|
||||||
version("1.9.0", sha256="3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974")
|
version("1.9.0", sha256="3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974")
|
||||||
|
@@ -22,7 +22,8 @@ class PyNumcodecs(PythonPackage):
|
|||||||
|
|
||||||
license("MIT")
|
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.11.0", sha256="6c058b321de84a1729299b0eae4d652b2e48ea1ca7f9df0da65cb13470e635eb")
|
||||||
version("0.7.3", sha256="022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85")
|
version("0.7.3", sha256="022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85")
|
||||||
version("0.6.4", sha256="ef4843d5db4d074e607e9b85156835c10d006afc10e175bda62ff5412fca6e4d")
|
version("0.6.4", sha256="ef4843d5db4d074e607e9b85156835c10d006afc10e175bda62ff5412fca6e4d")
|
||||||
|
@@ -185,7 +185,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
|
|||||||
# and remove the +tests conflict below.
|
# and remove the +tests conflict below.
|
||||||
variant("tests", default=False, description="Build tests")
|
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)
|
# define whether we want to run all the tests (including those known to fail)
|
||||||
# or only the passing ones.
|
# or only the passing ones.
|
||||||
variant(
|
variant(
|
||||||
|
@@ -23,6 +23,7 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
version("develop", branch="develop")
|
version("develop", branch="develop")
|
||||||
version("master", branch="master")
|
version("master", branch="master")
|
||||||
|
|
||||||
|
version("7.6.0", sha256="e424206fecb35bb2082b5c87f0865a9536040e984b88b041e6f7d531f8a65b20")
|
||||||
version("7.5.2", sha256="9ae01935578532c84f1d0d673dbbcdd490e26be22efa6c4acf7129f9dc1a0c60")
|
version("7.5.2", sha256="9ae01935578532c84f1d0d673dbbcdd490e26be22efa6c4acf7129f9dc1a0c60")
|
||||||
version("7.5.1", sha256="aadfa7976e90a109aeb1677042454388a8d1a50d75834d59c86c8aef06bc12e4")
|
version("7.5.1", sha256="aadfa7976e90a109aeb1677042454388a8d1a50d75834d59c86c8aef06bc12e4")
|
||||||
version("7.5.0", sha256="c583f88ffc02e9acac24e786bc35c7c32066882d2f70a1e0c14b5780b510365d")
|
version("7.5.0", sha256="c583f88ffc02e9acac24e786bc35c7c32066882d2f70a1e0c14b5780b510365d")
|
||||||
|
@@ -20,6 +20,8 @@ class SpectrumMpi(BundlePackage):
|
|||||||
|
|
||||||
provides("mpi")
|
provides("mpi")
|
||||||
|
|
||||||
|
conflicts("platform=windows")
|
||||||
|
|
||||||
executables = ["^ompi_info$"]
|
executables = ["^ompi_info$"]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@@ -204,25 +204,21 @@ def set_compiler_options(self, spec):
|
|||||||
# ('CC', 'CXX' and 'FC')
|
# ('CC', 'CXX' and 'FC')
|
||||||
# 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with
|
# 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with
|
||||||
# system compiler silently
|
# system compiler silently
|
||||||
# (regardless of what %<compiler> is used in the spec)
|
compiler_flags: Dict[str, str] = {
|
||||||
# 5 - On cray gnu compilers are not provied by self.compilers
|
flag: os.path.basename(getattr(self.compiler, compiler))
|
||||||
# Checking GCC_PATH will work if spack loads the gcc module
|
for flag, compiler in (("-cc", "cc"), ("-c++", "cxx"), ("-fortran", "fc"))
|
||||||
#
|
if getattr(self.compiler, compiler)
|
||||||
# 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),
|
|
||||||
]
|
|
||||||
|
|
||||||
if "+fortran" in spec and self.compiler.fc:
|
if "~fortran" in spec:
|
||||||
compiler_options.append("-fortran=%s" % os.path.basename(self.compiler.fc))
|
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")
|
depends_on("xz")
|
||||||
patch("vtk_find_liblzma.patch", when="@8.2")
|
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_movie_link_ogg.patch", when="@8.2")
|
||||||
patch("vtk_use_sqlite_name_vtk_expects.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")
|
patch("vtk_proj_include_no_strict.patch", when="@9: platform=windows")
|
||||||
|
Reference in New Issue
Block a user