Skip to content

Commit 8d72a47

Browse files
authored
Merge pull request #22 from mathomp4/feature/nas_install_spack_v1
Updates needed for NAS support
2 parents 971b6d6 + 845b3b9 commit 8d72a47

File tree

7 files changed

+35
-73
lines changed

7 files changed

+35
-73
lines changed

repos/spack_repo/builtin/packages/fargparse/package.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class Fargparse(CMakePackage):
2121
version("develop", branch="develop")
2222
version("main", branch="main")
2323

24+
version("1.10.0", sha256="c2f2b2c2f0dc263e484f7f5f6918d93f40c5b96b8970b5f19426f0a89e14a8f9")
2425
version("1.9.0", sha256="c83c13fa90b6b45adf8d84fe00571174acfa118d2a0d1e8c467f74bbd7dec49d")
2526
version("1.8.0", sha256="37108bd3c65d892d8c24611ce4d8e5451767e4afe81445fde67eab652178dd01")
2627
version("1.7.0", sha256="9889e7eca9c020b742787fba2be0ba16edcc3fcf52929261ccb7d09996a35f89")

repos/spack_repo/builtin/packages/gftl/package.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class Gftl(CMakePackage):
4040
version("develop", branch="develop")
4141
version("main", branch="main")
4242

43+
version("1.16.0", sha256="c72061a955e79a2d2fd58ddacedb5dfdf3a4a36881c53fad167830d320dbf1a6")
4344
version("1.15.2", sha256="1d3b7057da7057995c13055ba1149ed53e80937423b74d0ab5f40e6b85b7e6aa")
4445
version("1.15.1", sha256="13b9e17b7ec5e9ba19d0ee3ad1957bfa2015055b654891c6bb0bbe68b7a040d7")
4546
version("1.14.0", sha256="bf8e3ba3f708ea327c7eb1a5bd1afdce41358c6df1a323aba0f73575c25d5fc8")

repos/spack_repo/builtin/packages/gftl_shared/package.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class GftlShared(CMakePackage):
2626

2727
version("main", branch="main")
2828

29+
version("1.11.0", sha256="785f3ccae7a28a3060c2155d67754379991e60cde19b1b238f77ef68dc2ad022")
2930
version("1.10.0", sha256="42158fe75fa6bee336516c7531b4c6c4e7252dee2fed541eec740209a07ceafe")
3031
version("1.9.0", sha256="a3291ce61b512fe88628cc074b02363c2ba3081e7b453371089121988482dd6f")
3132
version("1.8.0", sha256="3450161508c573ea053b2a23cdbf2a1d6fd6fdb78c162d31fc0019da0f8dd03c")

repos/spack_repo/builtin/packages/mpt/package.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,13 @@ def setup_dependent_build_environment(
4040
) -> None:
4141
# use the Spack compiler wrappers under MPI
4242
dependent_module = dependent_spec.package.module
43-
env.set("MPICC_CC", dependent_module.spack_cc)
44-
env.set("MPICXX_CXX", dependent_module.spack_cxx)
45-
env.set("MPIF90_F90", dependent_module.spack_fc)
43+
for var_name, attr_name in (
44+
("MPICC_CC", "spack_cc"),
45+
("MPICXX_CXX", "spack_cxx"),
46+
("MPIF90_F90", "spack_fc"),
47+
):
48+
if hasattr(dependent_module, attr_name):
49+
env.set(var_name, getattr(dependent_module, attr_name))
4650

4751
def setup_run_environment(self, env: EnvironmentModifications) -> None:
4852
# Because MPI is both runtime and compiler, we have to setup the mpi

repos/spack_repo/builtin/packages/pflogger/package.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Pflogger(CMakePackage):
2323
version("develop", branch="develop")
2424
version("main", branch="main")
2525

26+
version("1.17.0", sha256="44dd57fd63a9036dc3ca0dee6847042468e5f39f776188a1d140847005e4f828")
2627
version("1.16.1", sha256="82ae8d008dda3984e12df3e92a61486a8f5c0b87182d54087f1d004ecc141fff")
2728
version("1.15.0", sha256="454f05731a3ba50c7ae3ef9463b642c53248ae84ccb3b93455ef2ae2b6858235")
2829
version("1.14.0", sha256="63422493136f66f61d5148b7b1d278b1e5ca76bd37c578e45e4ae0e967351823")
@@ -83,6 +84,12 @@ class Pflogger(CMakePackage):
8384
msg="oneAPI 2025.2 only works with pflogger 1.16.1 onwards",
8485
)
8586

87+
# This is needed because for ifx 2025.2, we need to use cpp from GNU as fpp from oneapi
88+
# is broken. To pull that in, we need to say pflogger depends on C, even though it really
89+
# doesn't.
90+
depends_on("c", when="^[email protected]", type="build")
91+
depends_on("gcc", when="^[email protected]", type="build")
92+
8693
@when("@1.16.1 ^[email protected]")
8794
def patch(self):
8895
filter_file("_RC)", "rc=status); _VERIFY(status,'',rc)", "src/Config.F90", string=True)

repos/spack_repo/builtin/packages/pfunit/package.py

Lines changed: 11 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class Pfunit(CMakePackage):
2020

2121
maintainers("mathomp4", "tclune")
2222

23+
version("4.14.0", sha256="3f5fcc79cf5f12ed08eb8e49aff23e0826243b14d4b2b2efee91ce823ac1749d")
24+
version("4.13.0", sha256="f4f894faea5cc591f05e071a2bb16ddf613c3c22f88a6dc3b8149f5c4f159548")
2325
version("4.12.0", sha256="facbef73b3e225ca552a376d0ec4502881ad0876f706cd0b5cffed8a089b92e4")
2426
version("4.11.1", sha256="db954ce44e857fe17cf4212f91223d2ab73248de0c3af405e2e1224f92ed8d42")
2527
version("4.10.0", sha256="ee5e899dfb786bac46e3629b272d120920bafdb7f6a677980fc345f6acda0f99")
@@ -50,44 +52,8 @@ class Pfunit(CMakePackage):
5052
version("4.1.12", sha256="7d71b0fb996497fe9a20eb818d02d596cd0d3cded1033a89a9081fbd925c68f2")
5153
version("4.1.11", sha256="16160bac223aaa3ed2b27e30287d25fdaec3cf6f2c570ebd8d61196e6aa6180f")
5254
version("4.1.10", sha256="051c35ad9678002943f4a4f2ab532a6b44de86ca414751616f93e69f393f5373")
53-
version(
54-
"3.3.3",
55-
sha256="9f673b58d20ad23148040a100227b4f876458a9d9aee0f0d84a5f0eef209ced5",
56-
deprecated=True,
57-
)
58-
version(
59-
"3.3.2",
60-
sha256="b1cc2e109ba602ea71bccefaa3c4a06e7ab1330db9ce6c08db89cfde497b8ab8",
61-
deprecated=True,
62-
)
63-
version(
64-
"3.3.1",
65-
sha256="f8f4bea7de991a518a0371b4c70b19e492aa9a0d3e6715eff9437f420b0cdb45",
66-
deprecated=True,
67-
)
68-
version(
69-
"3.3.0",
70-
sha256="4036ab448b821b500fbe8be5e3d5ab3e419ebae8be82f7703bcf84ab1a0ff862",
71-
deprecated=True,
72-
)
73-
version(
74-
"3.2.10",
75-
sha256="b9debba6d0e31b682423ffa756531e9728c10acde08c4d8e1609b4554f552b1a",
76-
deprecated=True,
77-
)
78-
version(
79-
"3.2.9",
80-
sha256="403f9a150865700c8b4240fd033162b8d3e8aeefa265c50c5a6fe14c455fbabc",
81-
deprecated=True,
82-
)
8355

8456
variant("mpi", default=False, description="Enable MPI")
85-
variant(
86-
"use_comm_world",
87-
default=False,
88-
description="Enable MPI_COMM_WORLD for testing",
89-
when="@:3 +mpi",
90-
)
9157
variant("openmp", default=False, description="Enable OpenMP")
9258
variant("fhamcrest", default=False, description="Enable hamcrest support")
9359
variant("esmf", default=False, description="Enable esmf support")
@@ -127,9 +93,9 @@ class Pfunit(CMakePackage):
12793
depends_on("python", type=("build", "run"))
12894
depends_on("mpi", when="+mpi")
12995
depends_on("esmf", when="+esmf")
130-
depends_on("m4", when="@4.1.5:", type="build")
96+
depends_on("m4", type="build")
13197
depends_on("[email protected]:", when="@4.10.0:")
132-
depends_on("fargparse", when="@4:")
98+
depends_on("fargparse")
13399

134100
depends_on("[email protected]:3", type="build", when="@:4.11")
135101
depends_on("[email protected]:", type="build", when="@4.12")
@@ -138,12 +104,10 @@ class Pfunit(CMakePackage):
138104
# CMake 3.25.0 has an issue with pFUnit
139105
# https://gitlab.kitware.com/cmake/cmake/-/issues/24203
140106
conflicts(
141-
142-
when="@4.0.0:",
143-
msg="CMake 3.25.0 has a bug with pFUnit. Please use another version.",
107+
"^[email protected]", msg="CMake 3.25.0 has a bug with pFUnit. Please use another version."
144108
)
145109

146-
conflicts("%gcc@:8.3.9", when="@4.0.0:", msg="pFUnit requires GCC 8.4.0 or newer")
110+
conflicts("%gcc@:8.3.9", msg="pFUnit requires GCC 8.4.0 or newer")
147111

148112
# pfunit only works with the Fujitsu compiler from 4.9.0 onwards
149113
conflicts(
@@ -181,32 +145,13 @@ def cmake_args(self):
181145
self.define("CMAKE_Fortran_MODULE_DIRECTORY", spec.prefix.include),
182146
self.define_from_variant("ENABLE_BUILD_DOXYGEN", "docs"),
183147
self.define("ENABLE_TESTS", self.run_tests),
148+
self.define("SKIP_MPI", self.spec.satisfies("~mpi")),
149+
self.define("SKIP_OPENMP", self.spec.satisfies("~openmp")),
150+
self.define("SKIP_FHAMCREST", self.spec.satisfies("~fhamcrest")),
151+
self.define("SKIP_ESMF", self.spec.satisfies("~esmf")),
152+
self.define_from_variant("MAX_ASSERT_RANK", "max_array_rank"),
184153
]
185154

186-
if spec.satisfies("@4.0.0:"):
187-
args.extend(
188-
[
189-
self.define("SKIP_MPI", self.spec.satisfies("~mpi")),
190-
self.define("SKIP_OPENMP", self.spec.satisfies("~openmp")),
191-
self.define("SKIP_FHAMCREST", self.spec.satisfies("~fhamcrest")),
192-
self.define("SKIP_ESMF", self.spec.satisfies("~esmf")),
193-
self.define_from_variant("MAX_ASSERT_RANK", "max_array_rank"),
194-
]
195-
)
196-
else:
197-
if spec.satisfies("%gcc@10:"):
198-
args.append(
199-
self.define("CMAKE_Fortran_FLAGS_DEBUG", "-g -O2 -fallow-argument-mismatch")
200-
)
201-
202-
args.extend(
203-
[
204-
self.define_from_variant("MPI", "mpi"),
205-
self.define_from_variant("OPENMP", "openmp"),
206-
self.define_from_variant("MAX_RANK", "max_array_rank"),
207-
]
208-
)
209-
210155
if spec.satisfies("@:4.2.1") and spec.satisfies("%gcc@5:"):
211156
# prevents breakage when max_array_rank is larger than default. Note
212157
# that 4.0.0-4.2.1 still had a 512 limit
@@ -249,7 +194,3 @@ def compiler_vendor(self):
249194
if self.spec.satisfies(key):
250195
return value
251196
raise InstallError("Unsupported compiler.")
252-
253-
def setup_build_environment(self, env: EnvironmentModifications) -> None:
254-
if self.spec.satisfies("@:3"):
255-
env.set("F90_VENDOR", self.compiler_vendor())

repos/spack_repo/builtin/packages/yafyaml/package.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class Yafyaml(CMakePackage):
3131

3232
version("main", branch="main")
3333

34+
version("1.6.0", sha256="4eb4834c40e70eb1d81669e4397fe09e9f08dde292feb3a889362debdbf9d339")
3435
version("1.5.1", sha256="c9e7f873fdcb579fca53196f3a1ad68149dc6e980e6533e1119687f5a7463cc1")
3536
version("1.4.0", sha256="2a415087eb26d291ff40da4430d668c702d22601ed52a72d001140d97372bc7d")
3637
version("1.3.0", sha256="a3882210b2620485471e3337d995edc1e653b49d9caaa902a43293826a61a635")
@@ -74,6 +75,12 @@ class Yafyaml(CMakePackage):
7475
"%[email protected]", when="@:1.5.0", msg="oneAPI 2025.2 only works with yafyaml 1.5.1 onwards"
7576
)
7677

78+
# This is needed because for ifx 2025.2, we need to use cpp from GNU as fpp from oneapi
79+
# is broken. To pull that in, we need to say yafyaml depends on C, even though it really
80+
# doesn't.
81+
depends_on("c", when="^[email protected]", type="build")
82+
depends_on("gcc", when="^[email protected]", type="build")
83+
7784
@when("@1.5.1 ^[email protected]")
7885
def patch(self):
7986
for pf in ["src/Nodes/BaseNode_implementation.F90", "src/Lexer.F90"]:

0 commit comments

Comments
 (0)