mapl: fix too strict oneapi conflict (#48743)
* mapl: fix too strict oneapi conflict * Use older style * Add diag-disable flag * Updates from Dom
This commit is contained in:
parent
5174cb9180
commit
0d170b9ef3
@ -252,9 +252,11 @@ class Mapl(CMakePackage):
|
|||||||
conflicts("%gcc@13:", when="@:2.44")
|
conflicts("%gcc@13:", when="@:2.44")
|
||||||
|
|
||||||
# MAPL can use ifx only from MAPL 2.51 onwards and only supports
|
# MAPL can use ifx only from MAPL 2.51 onwards and only supports
|
||||||
# ifx 2025.0 and newer due to bugs in ifx
|
# ifx 2025.0 and newer due to bugs in ifx.
|
||||||
conflicts("%oneapi@:2024")
|
conflicts("%oneapi@2025:", when="@:2.50")
|
||||||
conflicts("%oneapi", when="@:2.50")
|
# NOTE there is a further check on oneapi in the cmake_args below
|
||||||
|
# that is hard to conflict since we don't know the fortran compiler
|
||||||
|
# at this point
|
||||||
|
|
||||||
variant("flap", default=False, description="Build with FLAP support", when="@:2.39")
|
variant("flap", default=False, description="Build with FLAP support", when="@:2.39")
|
||||||
variant("pflogger", default=True, description="Build with pFlogger support")
|
variant("pflogger", default=True, description="Build with pFlogger support")
|
||||||
@ -388,6 +390,22 @@ def cmake_args(self):
|
|||||||
if fflags:
|
if fflags:
|
||||||
args.append(self.define("CMAKE_Fortran_FLAGS", " ".join(fflags)))
|
args.append(self.define("CMAKE_Fortran_FLAGS", " ".join(fflags)))
|
||||||
|
|
||||||
|
# If oneapi@:2024 is used and it gets past the conflict above, we might be
|
||||||
|
# using ifx or ifort. If we are using ifx and the MAPL version is 2.50 or older
|
||||||
|
# we need to raise an error
|
||||||
|
|
||||||
|
if self.spec.satisfies("@:2.50 %oneapi@:2024"):
|
||||||
|
# We now need to get which Fortran compiler is used here but there
|
||||||
|
# isn't an easy way like:
|
||||||
|
# if self.spec["fortran"].name == "ifx":
|
||||||
|
# yet (see https://github.com/spack/spack/pull/45189)
|
||||||
|
# So we need to parse the output of $FC --version
|
||||||
|
output = spack.compiler.get_compiler_version_output(
|
||||||
|
self.compiler.fc, "-diag-disable=10448 --version", ignore_errors=True
|
||||||
|
)
|
||||||
|
if "ifx" in output:
|
||||||
|
raise InstallError("MAPL versions 2.50 and older do not support ifx")
|
||||||
|
|
||||||
# Scripts often need to know the MPI stack used to setup the environment.
|
# Scripts often need to know the MPI stack used to setup the environment.
|
||||||
# Normally, we can autodetect this, but building with Spack does not
|
# Normally, we can autodetect this, but building with Spack does not
|
||||||
# seem to work. We need to pass in the MPI stack used to CMake
|
# seem to work. We need to pass in the MPI stack used to CMake
|
||||||
|
Loading…
Reference in New Issue
Block a user