Commit beb5c9ff authored by one's avatar one
Browse files

Update nekRS

parent ba454342
...@@ -136,8 +136,20 @@ class Nekrs(Package, CMakePackage, CudaPackage, ROCmPackage): ...@@ -136,8 +136,20 @@ class Nekrs(Package, CMakePackage, CudaPackage, ROCmPackage):
def setup_dependent_build_environment( def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec self, env: EnvironmentModifications, dependent_spec: Spec
) -> None: ) -> None:
# Export the same runtime settings for dependents built in Spack. # Export only compiler-related OCCA vars to dependent builds to avoid
self.setup_run_environment(env) # polluting their runtime-oriented environment (e.g. PATH/NEKRS_HOME).
spec = self.spec
runtime_cxx = spec["mpi"].mpicxx
env.set("OCCA_CXX", runtime_cxx)
env.set("NEKRS_MPI_UNDERLYING_COMPILER", runtime_cxx)
cxxflags = spec.compiler_flags.get("cxxflags", [])
if cxxflags:
env.set("OCCA_CXXFLAGS", " ".join(cxxflags))
if "+cuda" in spec:
cuda_dir = spec["cuda"].prefix
env.set("OCCA_CUDA_COMPILER", join_path(cuda_dir, "bin", "nvcc"))
class GenericBuilder(generic.GenericBuilder): class GenericBuilder(generic.GenericBuilder):
def install(self, pkg, spec, prefix): def install(self, pkg, spec, prefix):
...@@ -153,6 +165,23 @@ class GenericBuilder(generic.GenericBuilder): ...@@ -153,6 +165,23 @@ class GenericBuilder(generic.GenericBuilder):
class CMakeBuilder(cmake.CMakeBuilder): class CMakeBuilder(cmake.CMakeBuilder):
def install(self, pkg, spec, prefix):
super().install(pkg, spec, prefix)
# Ensure installed runtime config does not retain Spack build wrappers.
runtime_cxx = spec["mpi"].mpicxx
conf = join_path(prefix, "nekrs.conf")
filter_file(
r"^NEKRS_MPI_UNDERLYING_COMPILER = .*$",
f"NEKRS_MPI_UNDERLYING_COMPILER = {runtime_cxx}",
conf,
)
filter_file(
r"^OCCA_CXX = .*$",
f"OCCA_CXX = {runtime_cxx}",
conf,
)
def cmake_args(self): def cmake_args(self):
cxxflags = self.spec.compiler_flags.get("cxxflags", []) cxxflags = self.spec.compiler_flags.get("cxxflags", [])
args = [ args = [
...@@ -160,6 +189,7 @@ class CMakeBuilder(cmake.CMakeBuilder): ...@@ -160,6 +189,7 @@ class CMakeBuilder(cmake.CMakeBuilder):
self.define("CMAKE_C_COMPILER", self.spec["mpi"].mpicc), self.define("CMAKE_C_COMPILER", self.spec["mpi"].mpicc),
self.define("CMAKE_CXX_COMPILER", self.spec["mpi"].mpicxx), self.define("CMAKE_CXX_COMPILER", self.spec["mpi"].mpicxx),
self.define("CMAKE_Fortran_COMPILER", self.spec["mpi"].mpifc), self.define("CMAKE_Fortran_COMPILER", self.spec["mpi"].mpifc),
self.define("OCCA_CXX", self.spec["mpi"].mpicxx),
self.define_from_variant("ENABLE_CUDA", "cuda"), self.define_from_variant("ENABLE_CUDA", "cuda"),
self.define_from_variant("ENABLE_OPENCL", "opencl"), self.define_from_variant("ENABLE_OPENCL", "opencl"),
self.define_from_variant("ENABLE_HIP", "rocm"), self.define_from_variant("ENABLE_HIP", "rocm"),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment