Compare commits
16 Commits
hs/feature
...
hs/windows
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bf17cd8dd6 | ||
![]() |
4b54e72351 | ||
![]() |
199cbce5ef | ||
![]() |
82dea7e6ce | ||
![]() |
bd71ce5856 | ||
![]() |
73fc86cbc3 | ||
![]() |
3589edcc6d | ||
![]() |
cade66d842 | ||
![]() |
c5766aa757 | ||
![]() |
c3e9bd4fbf | ||
![]() |
05357052ac | ||
![]() |
dc3f5cd606 | ||
![]() |
9a16927993 | ||
![]() |
093b273f5c | ||
![]() |
b6ff126494 | ||
![]() |
fe8f631b7d |
@@ -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.
|
||||
|
@@ -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()
|
||||
|
@@ -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)
|
||||
|
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
|
||||
|
@@ -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")
|
||||
|
@@ -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"
|
||||
)
|
||||
|
@@ -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):
|
||||
|
@@ -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")
|
||||
|
@@ -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