Skip to content

Commit c101d6d

Browse files
authored
Merge pull request #431 from GEOS-ESM/develop
GitFlow: Merge develop into main for release
2 parents 40179ea + 144a0f7 commit c101d6d

File tree

11 files changed

+227
-98
lines changed

11 files changed

+227
-98
lines changed

.circleci/config.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@ workflows:
1717
- docker-hub-creds
1818
matrix:
1919
parameters:
20-
compiler: [gfortran, ifort]
20+
compiler: [gfortran, ifort, ifx]
2121
#baselibs_version: *baselibs_version
2222
repo: GEOSgcm
2323
checkout_fixture: true
2424
# V12 code uses a special branch for now.
2525
fixture_branch: feature/sdrabenh/gcm_v12
26+
develop_repos: "GEOSgcm_GridComp GEOSgcm_App GMAO_Shared FVdycoreCubed_GridComp fvdycore"
2627
# We comment out this as it will "undo" the fixture_branch
2728
#mepodevelop: true
2829
persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra
@@ -34,7 +35,7 @@ workflows:
3435
- docker-hub-creds
3536
matrix:
3637
parameters:
37-
compiler: [gfortran, ifort]
38+
compiler: [gfortran, ifort, ifx]
3839
requires:
3940
- build-GEOSgcm-on-<< matrix.compiler >>
4041
repo: GEOSgcm
@@ -48,7 +49,7 @@ workflows:
4849
- docker-hub-creds
4950
matrix:
5051
parameters:
51-
compiler: [ifort]
52+
compiler: [ifort, ifx]
5253
# There seems to be an issue with gfortran, mom6, and GNU
5354
requires:
5455
- build-GEOSgcm-on-<< matrix.compiler >>

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717

1818
### Deprecated
1919

20+
## [4.13.0] - 2025-03-18
21+
22+
### Removed
23+
24+
- Remove code for finding OS at NCCS as system is now all SLES15
25+
26+
### Changed
27+
28+
- Update Intel LLVM Fortran flags to use `-march=x86-64-v3` as `-march=core-avx2` is not (technically?) supported by `ifx`
29+
- Reworked FMS detection to better handle the different `FV_PRECISION` cases in `FindBaselibs.cmake`
30+
- Change f2py detection for the odd case where there might be multiple Python installations. For now, if the path to the Python executable does not match the path to the f2py executable, we issue a `WARNING`. We use a `WARNING` since some installations (e.g., Spack) will have the Python executable in a different location than the f2py executable.
31+
- Removed warning that Baselibs is not supported, to a STATUS message.
32+
2033
## [4.12.0] - 2025-02-11
2134

2235
### Changed

compiler/flags/IntelLLVM_Fortran.cmake

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,18 @@ set (NO_RANGE_CHECK "")
6363

6464
cmake_host_system_information(RESULT proc_description QUERY PROCESSOR_DESCRIPTION)
6565
if (${proc_description} MATCHES "EPYC")
66-
# AMD EPYC processors support AVX2, but only via the -march=core-avx2 flag
67-
set (COREAVX2_FLAG "-march=core-avx2")
66+
set (MARCH_FLAG "-march=x86-64-v3")
6867
elseif (${proc_description} MATCHES "Hygon")
69-
# Hygon processors support AVX2, but only via the -march=core-avx2 flag
70-
set (COREAVX2_FLAG "-march=core-avx2")
68+
set (MARCH_FLAG "-march=x86-64-v3")
7169
elseif (${proc_description} MATCHES "Intel")
7270
# All the Intel processors that GEOS runs on support AVX2, but to be
73-
# consistent with the AMD processors, we use the -march=core-avx2 flag
74-
set (COREAVX2_FLAG "-march=core-avx2")
75-
# Previous versions of GEOS used this flag, which was not portable
76-
# for AMD. Keeping here for a few versions for historical purposes.
77-
#set (COREAVX2_FLAG "-xCORE-AVX2")
71+
# consistent with the AMD processors, we use the -march=x86-64-v3 flag
72+
set (MARCH_FLAG "-march=x86-64-v3")
7873
elseif ( ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64" )
7974
# This is a fallback for when the above doesn't work. It should work
8075
# for most x86_64 processors, but it is not guaranteed to be optimal.
8176
message(WARNING "Unknown processory type. Defaulting to a generic x86_64 processor. Performance may be suboptimal.")
82-
set (COREAVX2_FLAG "")
77+
set (MARCH_FLAG "x86-64")
8378
else ()
8479
message(FATAL_ERROR "Unknown processor. Please file an issue at https://github.com/GEOS-ESM/ESMA_cmake")
8580
endif ()
@@ -108,7 +103,7 @@ set (GEOS_Fortran_NoVect_FPE_Flags "${common_Fortran_fpe_flags} ${ARCH_CONSISTEN
108103

109104
# GEOS Vectorize
110105
# --------------
111-
set (GEOS_Fortran_Vect_Flags "${FOPT3} ${DEBINFO} ${COREAVX2_FLAG} -fma -qopt-report0 ${FTZ} ${ALIGN_ALL} ${NO_ALIAS} -align array32byte")
106+
set (GEOS_Fortran_Vect_Flags "${FOPT3} ${DEBINFO} ${MARCH_FLAG} -fma -qopt-report0 ${FTZ} ${ALIGN_ALL} ${NO_ALIAS} -align array32byte")
112107
set (GEOS_Fortran_Vect_FPE_Flags "${FPE3} ${FP_MODEL_CONSISTENT} ${NOOLD_MAXMINLOC}")
113108

114109
# GEOS Release
@@ -118,7 +113,7 @@ set (GEOS_Fortran_Release_FPE_Flags "${GEOS_Fortran_Vect_FPE_Flags}")
118113

119114
# GEOS Aggressive
120115
# ---------------
121-
set (GEOS_Fortran_Aggressive_Flags "${FOPT3} ${DEBINFO} ${COREAVX2_FLAG} -fma -qopt-report0 ${FTZ} ${ALIGN_ALL} ${NO_ALIAS} -align array32byte")
116+
set (GEOS_Fortran_Aggressive_Flags "${FOPT3} ${DEBINFO} ${MARCH_FLAG} -fma -qopt-report0 ${FTZ} ${ALIGN_ALL} ${NO_ALIAS} -align array32byte")
122117
#set (GEOS_Fortran_Aggressive_Flags "${FOPT3} ${DEBINFO} -xSKYLAKE-AVX512 -qopt-zmm-usage=high -fma -qopt-report0 ${FTZ} ${ALIGN_ALL} ${NO_ALIAS} -align array64byte")
123118
set (GEOS_Fortran_Aggressive_FPE_Flags "${FPE3} ${FP_MODEL_FAST2} ${USE_SVML} ${NOOLD_MAXMINLOC}")
124119

external_libraries/DetermineSite.cmake

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,6 @@ set(DETECTED_SITE "UNKNOWN")
1111

1212
if (${BUILD_SITE} MATCHES "discover*" OR ${BUILD_SITE} MATCHES "borg*" OR ${BUILD_SITE} MATCHES "warp*")
1313
set (DETECTED_SITE "NCCS")
14-
# NCCS now has two OSs. We need to detect if we are on SLES 15. If so, we set a flag "BUILT_ON_SLES15"
15-
# which we will use to make sure people building on SLES15 run on SLES15
16-
# The commmand we use in bash is:
17-
# grep VERSION_ID /etc/os-release | cut -d= -f2 | cut -d. -f1 | sed 's/"//g'
18-
execute_process(
19-
COMMAND grep VERSION_ID /etc/os-release
20-
COMMAND cut -d= -f2
21-
COMMAND cut -d. -f1
22-
COMMAND sed s/\"//g
23-
OUTPUT_VARIABLE OS_RELEASE
24-
OUTPUT_STRIP_TRAILING_WHITESPACE
25-
)
26-
if (OS_RELEASE STREQUAL "15")
27-
set (BUILT_ON_SLES15 TRUE)
28-
else ()
29-
set (BUILT_ON_SLES15 FALSE)
30-
endif ()
3114
elseif (${BUILD_SITE} MATCHES "pfe" OR ${BUILD_SITE} MATCHES "r[0-9]*i[0-9]*n[0-9]*" OR ${BUILD_SITE} MATCHES "r[0-9]*c[0-9]*t[0-9]*n[0-9]*")
3215
set (DETECTED_SITE "NAS")
3316
elseif (EXISTS /ford1/share/gmao_SIteam AND EXISTS /ford1/local AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
@@ -80,12 +63,3 @@ endif ()
8063

8164
set(GEOS_SITE ${DETECTED_SITE} CACHE STRING "Detected site for use with GEOS setup scripts")
8265
message(STATUS "Setting GEOS_SITE to ${GEOS_SITE}")
83-
84-
if (DETECTED_SITE STREQUAL "NCCS")
85-
if (BUILT_ON_SLES15)
86-
message(STATUS "Building on SLES15 at NCCS. Can only run on Milan processors")
87-
else ()
88-
message(STATUS "Building on SLES12 at NCCS. Can run on Cascade Lake or Skylake processors")
89-
endif ()
90-
endif ()
91-

external_libraries/FindBaselibs.cmake

Lines changed: 72 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,7 @@ if (BASEDIR)
5959
endif ()
6060
set (BASEDIR "${BASEDIR}" CACHE PATH "Path to installed baselibs" FORCE)
6161
else ()
62-
ecbuild_warn(
63-
"BASEDIR not specified.\n"
64-
"If you wish to use Baselibs, please use:\n"
65-
" cmake ... -DBASEDIR=<path-to-Baselibs>\n"
66-
"or set BASEDIR in your environment.\n\n"
67-
"Note that building GEOS-ESM code without Baselibs is unsupported.")
62+
message(STATUS "BASEDIR not set. Baselibs not found. Assume we are using Spack or other methods to provide dependencies")
6863
endif ()
6964

7065
if (ESMA_SDF)
@@ -282,42 +277,80 @@ if (Baselibs_FOUND)
282277
endif ()
283278

284279
# - fms_r4
285-
set (inc_fms_r4 ${BASEDIR}/FMS/include_r4)
286-
set (lib_fms_r4 ${BASEDIR}/FMS/lib/libfms_r4.a)
287-
add_library(FMS::fms_r4 STATIC IMPORTED)
288-
set_target_properties(FMS::fms_r4 PROPERTIES
289-
IMPORTED_LOCATION ${lib_fms_r4}
290-
INCLUDE_DIRECTORIES "${inc_fms_r4}"
291-
INTERFACE_INCLUDE_DIRECTORIES "${inc_fms_r4}"
292-
INTERFACE_LINK_LIBRARIES "NetCDF::NetCDF_Fortran;MPI::MPI_Fortran"
293-
INTERFACE_LINK_DIRECTORIES "${BASEDIR}/FMS/lib"
294-
)
295-
if (FMS_BUILT_WITH_YAML)
296-
target_link_libraries(FMS::fms_r4 INTERFACE ${LIBYAML_LIBRARIES})
297-
endif ()
298-
add_library(fms_r4 ALIAS FMS::fms_r4)
299-
set(FMS_R4_FOUND TRUE CACHE BOOL "fms_r4 Found" FORCE)
280+
if (FV_PRECISION STREQUAL R4 OR FV_PRECISION STREQUAL R4R8)
281+
# Use find_path and find_library to find the include and library
282+
find_path(FMS_INCLUDE_DIR_R4 NAMES fms.mod PATHS ${BASEDIR}/FMS/include_r4)
283+
find_library(FMS_LIBRARIES_R4 NAMES fms_r4 PATHS ${BASEDIR}/FMS/lib ${BASEDIR}/FMS/lib64)
284+
# We also need the path of where the library is for the INTERFACE_LINK_DIRECTORIES
285+
get_filename_component(FMS_LIBRARIES_DIR_R4 ${FMS_LIBRARIES_R4} DIRECTORY)
286+
add_library(FMS::fms_r4 STATIC IMPORTED)
287+
set_target_properties(FMS::fms_r4 PROPERTIES
288+
IMPORTED_LOCATION ${FMS_LIBRARIES_R4}
289+
INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R4}"
290+
INTERFACE_INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R4}"
291+
INTERFACE_LINK_LIBRARIES "NetCDF::NetCDF_Fortran;MPI::MPI_Fortran"
292+
INTERFACE_LINK_DIRECTORIES "${FMS_LIBRARIES_DIR_R4}"
293+
)
294+
if (FMS_BUILT_WITH_YAML)
295+
target_link_libraries(FMS::fms_r4 INTERFACE ${LIBYAML_LIBRARIES})
296+
endif ()
297+
# We will set FMS_R4_FOUND if both FMS_LIBRARIES_R4 and FMS_INCLUDE_DIR_R4 are found
298+
# and are valid files and directories respectively
299+
if (EXISTS ${FMS_LIBRARIES_R4} AND IS_DIRECTORY ${FMS_INCLUDE_DIR_R4})
300+
message(STATUS "Found FMS::fms_r4: ${FMS_LIBRARIES_R4}")
301+
message(STATUS "FMS::fms_r4 include directory: ${FMS_INCLUDE_DIR_R4}")
302+
set(FMS_R4_FOUND TRUE CACHE BOOL "fms_r4 Found" FORCE)
303+
else ()
304+
message(FATAL_ERROR "FMS::fms_r4 not found")
305+
endif()
306+
endif()
300307

301308
# - fms_r8
302-
set (inc_fms_r8 ${BASEDIR}/FMS/include_r8)
303-
set (lib_fms_r8 ${BASEDIR}/FMS/lib/libfms_r8.a)
304-
add_library(FMS::fms_r8 STATIC IMPORTED)
305-
set_target_properties(FMS::fms_r8 PROPERTIES
306-
IMPORTED_LOCATION ${lib_fms_r8}
307-
INCLUDE_DIRECTORIES "${inc_fms_r8}"
308-
INTERFACE_INCLUDE_DIRECTORIES "${inc_fms_r8}"
309-
INTERFACE_LINK_LIBRARIES "NetCDF::NetCDF_Fortran;MPI::MPI_Fortran"
310-
INTERFACE_LINK_DIRECTORIES "${BASEDIR}/FMS/lib"
311-
)
312-
if (FMS_BUILT_WITH_YAML)
313-
target_link_libraries(FMS::fms_r8 INTERFACE ${LIBYAML_LIBRARIES})
314-
endif ()
315-
add_library(fms_r8 ALIAS FMS::fms_r8)
316-
set(FMS_R8_FOUND TRUE CACHE BOOL "fms_r8 Found" FORCE)
309+
if (FV_PRECISION STREQUAL R8 OR FV_PRECISION STREQUAL R4R8)
310+
# Use find_path and find_library to find the include and library
311+
find_path(FMS_INCLUDE_DIR_R8 NAMES fms.mod PATHS ${BASEDIR}/FMS/include_r8)
312+
find_library(FMS_LIBRARIES_R8 NAMES fms_r8 PATHS ${BASEDIR}/FMS/lib ${BASEDIR}/FMS/lib64)
313+
# We also need the path of where the library is for the INTERFACE_LINK_DIRECTORIES
314+
get_filename_component(FMS_LIBRARIES_DIR_R8 ${FMS_LIBRARIES_R8} DIRECTORY)
315+
add_library(FMS::fms_r8 STATIC IMPORTED)
316+
set_target_properties(FMS::fms_r8 PROPERTIES
317+
IMPORTED_LOCATION ${FMS_LIBRARIES_R8}
318+
INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R8}"
319+
INTERFACE_INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R8}"
320+
INTERFACE_LINK_LIBRARIES "NetCDF::NetCDF_Fortran;MPI::MPI_Fortran"
321+
INTERFACE_LINK_DIRECTORIES "${FMS_LIBRARIES_DIR_R8}"
322+
)
323+
if (FMS_BUILT_WITH_YAML)
324+
target_link_libraries(FMS::fms_r8 INTERFACE ${LIBYAML_LIBRARIES})
325+
endif ()
326+
# We will set FMS_R8_FOUND if both FMS_LIBRARIES_R8 and FMS_INCLUDE_DIR_R8 are found
327+
# and are valid files and directories respectively
328+
if (EXISTS ${FMS_LIBRARIES_R8} AND IS_DIRECTORY ${FMS_INCLUDE_DIR_R8})
329+
message(STATUS "Found FMS::fms_r8: ${FMS_LIBRARIES_R8}")
330+
message(STATUS "FMS::fms_r8 include directory: ${FMS_INCLUDE_DIR_R8}")
331+
set(FMS_R8_FOUND TRUE CACHE BOOL "fms_r8 Found" FORCE)
332+
else ()
333+
message(FATAL_ERROR "FMS::fms_r8 not found")
334+
endif()
335+
endif()
317336

318-
if (FMS_R4_FOUND AND FMS_R8_FOUND)
319-
set(FMS_FOUND TRUE CACHE BOOL "FMS Found" FORCE)
320-
endif ()
337+
if (FV_PRECISION STREQUAL R4R8)
338+
# We will set FMS_FOUND if both fms_r4 and fms_r8 are found
339+
# and are valid files and directories respectively
340+
if (FMS_R4_FOUND AND FMS_R8_FOUND)
341+
set(FMS_FOUND TRUE CACHE BOOL "FMS Found" FORCE)
342+
endif()
343+
elseif (FV_PRECISION STREQUAL R4)
344+
if (FMS_R4_FOUND)
345+
set(FMS_FOUND TRUE CACHE BOOL "FMS Found" FORCE)
346+
endif()
347+
elseif (FV_PRECISION STREQUAL R8)
348+
if (FMS_R8_FOUND)
349+
set(FMS_FOUND TRUE CACHE BOOL "FMS Found" FORCE)
350+
endif()
351+
else()
352+
message(FATAL_ERROR "FMS Detection failed in odd way")
353+
endif()
321354

322355
if (FMS_FOUND)
323356
set (FMS_DIR ${BASEDIR}/FMS CACHE PATH "Path to FMS" FORCE)

python/esma_python.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ cmake_minimum_required(VERSION 3.24)
66

77
# Find Python
88
set(Python_FIND_STRATEGY LOCATION)
9+
set(Python_FIND_UNVERSIONED_NAMES FIRST)
10+
set(Python_FIND_FRAMEWORK LAST)
911
find_package(Python COMPONENTS Interpreter)
1012

1113
# Find Python2
1214
set(Python2_FIND_STRATEGY LOCATION)
15+
set(Python2_FIND_UNVERSIONED_NAMES FIRST)
16+
set(Python2_FIND_FRAMEWORK LAST)
1317
find_package(Python2 COMPONENTS Interpreter)
1418
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/f2py2")
1519
include (esma_find_python2_module)
@@ -18,6 +22,8 @@ include (esma_add_f2py2_module)
1822

1923
# Find Python3
2024
set(Python3_FIND_STRATEGY LOCATION)
25+
set(Python3_FIND_UNVERSIONED_NAMES FIRST)
26+
set(Python3_FIND_FRAMEWORK LAST)
2127
find_package(Python3 COMPONENTS Interpreter)
2228
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/f2py3")
2329
include (esma_find_python3_module)

python/f2py/FindF2PY.cmake

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,38 @@
3131
#
3232

3333
# Path to the f2py executable
34-
find_program(F2PY_EXECUTABLE NAMES "f2py${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}"
35-
"f2py-${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}"
36-
"f2py${Python_VERSION_MAJOR}"
37-
"f2py"
38-
)
34+
35+
## We might have an odd circumstance where there are a couple f2py around. As such,
36+
## we need to find the one that matches the Python_EXECUTABLE. This is a bit of a
37+
## hack, but it should work for most cases.
38+
39+
## Find the directory where the Python_EXECUTABLE is located
40+
message(DEBUG "[F2PY]: Searching for f2py executable associated with Python_EXECUTABLE: ${Python_EXECUTABLE}")
41+
get_filename_component(PYTHON_EXECUTABLE_DIR ${Python_EXECUTABLE} DIRECTORY)
42+
message(DEBUG "[F2PY]: Python executable directory: ${PYTHON_EXECUTABLE_DIR}")
43+
44+
find_program(F2PY_EXECUTABLE
45+
NAMES "f2py"
46+
"f2py${Python_VERSION_MAJOR}"
47+
"f2py${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}"
48+
"f2py-${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}"
49+
PATHS ${PYTHON_EXECUTABLE_DIR}
50+
)
51+
52+
message(DEBUG "[F2PY]: Found f2py executable: ${F2PY_EXECUTABLE}")
53+
54+
# Now as a sanity check, we need to make sure that the f2py executable is
55+
# actually the one that is associated with the Python_EXECUTABLE
56+
get_filename_component(F2PY_EXECUTABLE_DIR ${F2PY_EXECUTABLE} DIRECTORY)
57+
message(DEBUG "[F2PY]: f2py executable directory: ${F2PY_EXECUTABLE_DIR}")
58+
59+
# Now we issue a WARNING. We can't do more than that because of things like Spack
60+
# where f2py will be in a different location than python.
61+
if (NOT "${F2PY_EXECUTABLE_DIR}" STREQUAL "${PYTHON_EXECUTABLE_DIR}")
62+
message(WARNING
63+
"[F2PY]: The f2py executable [${F2PY_EXECUTABLE}] found is not the one associated with the Python_EXECUTABLE [${Python_EXECUTABLE}].\n"
64+
"Please check your Python environment if this is not expected (for example, not a Spack install) or build with -DUSE_F2PY=OFF.")
65+
endif ()
3966

4067
if(F2PY_EXECUTABLE)
4168
# extract the version string

python/f2py/try_f2py_compile.cmake

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,22 @@ macro (try_f2py_compile file var)
1919
else ()
2020
set(MESON_F2PY_FCOMPILER "${CMAKE_Fortran_COMPILER}")
2121
endif ()
22+
message(DEBUG "MESON_F2PY_FCOMPILER is set to ${MESON_F2PY_FCOMPILER}")
23+
message(DEBUG "F2PY_COMPILER is set to ${F2PY_COMPILER}")
24+
# hack for Macs. If the C compiler is clang and we are on Apple,
25+
# we need to set the CC environment to /usr/bin/clang
26+
if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
27+
set(MESON_CCOMPILER "/usr/bin/clang")
28+
message(STATUS "Detected AppleClang on macOS. Using ugly hack for meson by passing in CC=/usr/bin/clang")
29+
else()
30+
set(MESON_CCOMPILER "${CMAKE_C_COMPILER}")
31+
endif()
32+
message(DEBUG "MESON_CCOMPILER is set to ${MESON_CCOMPILER}")
33+
list(APPEND ENV_LIST FC=${MESON_F2PY_FCOMPILER})
34+
list(APPEND ENV_LIST CC=${MESON_CCOMPILER})
35+
message(DEBUG "ENV_LIST is set to ${ENV_LIST}")
2236
execute_process(
23-
COMMAND cmake -E env "FC=${MESON_F2PY_COMPILER}" ${F2PY_EXECUTABLE} -m test_ -c ${file} --fcompiler=${F2PY_FCOMPILER}
37+
COMMAND cmake -E env ${ENV_LIST} ${F2PY_EXECUTABLE} -m test_ -c ${file} --fcompiler=${F2PY_FCOMPILER}
2438
WORKING_DIRECTORY ${_f2py_check_bindir}
2539
RESULT_VARIABLE result
2640
OUTPUT_QUIET

0 commit comments

Comments
 (0)