From eeba92e788f4baf1b745c0ab6c61354a35ba13fa Mon Sep 17 00:00:00 2001 From: Mosè Giordano Date: Thu, 26 Jan 2023 10:59:54 +0000 Subject: wrf: Fix patching of config file when using GCC for v3.9.1.1 (#35140) The regex doesn't actually work because dollar signs and parentheses have to be escaped. Also, compiling with OpenMPI requires defining the macro `MPI2SUPPORT`. --- var/spack/repos/builtin/packages/wrf/package.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py index b0d87af04a..c2a3352d0c 100644 --- a/var/spack/repos/builtin/packages/wrf/package.py +++ b/var/spack/repos/builtin/packages/wrf/package.py @@ -287,10 +287,16 @@ class Wrf(Package): config = FileFilter(join_path("arch", "configure.defaults")) if self.spec.satisfies("@3.9.1.1 %gcc"): + # Compiling with OpenMPI requires using `-DMPI2SUPPORT`. + other_flags = " -DMPI2SUPPORT" if self.spec.satisfies("^openmpi") else "" config.filter( - "^DM_FC.*mpif90 -f90=$(SFC)", "DM_FC = {0}".format(self.spec["mpi"].mpifc) + r"^DM_FC.*mpif90 -f90=\$\(SFC\)", + "DM_FC = {0}".format(self.spec["mpi"].mpifc) + other_flags, + ) + config.filter( + r"^DM_CC.*mpicc -cc=\$\(SCC\)", + "DM_CC = {0}".format(self.spec["mpi"].mpicc) + other_flags, ) - config.filter("^DM_CC.*mpicc -cc=$(SCC)", "DM_CC = {0}".format(self.spec["mpi"].mpicc)) if self.spec.satisfies("%aocc"): config.filter( -- cgit v1.2.3-70-g09d2