Skip to content

Commit bc13212

Browse files
author
dustinswales
committed
Add ability to disable openmp for ccpp build, for use in hosts where threading occurs ABOVE the physics.
1 parent a733073 commit bc13212

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

CMakeLists.txt

+23-7
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,13 @@ if(SCHEMES_OPENMP_OFF)
141141
endif()
142142

143143
# Assign standard floating point precision flags to all remaining schemes and caps
144-
SET_PROPERTY(SOURCE ${SCHEMES} ${CAPS}
145-
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS}")
144+
if($ENV{DISABLE_CCPP_OPENMP})
145+
SET_PROPERTY(SOURCE ${SCHEMES} ${CAPS}
146+
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS}")
147+
else($ENV{DISABLE_CCPP_OPENMP})
148+
SET_PROPERTY(SOURCE ${SCHEMES} ${CAPS}
149+
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS}")
150+
endif()
146151

147152
# Lower optimization for certain schemes when compiling with Intel in Release mode
148153
if(CMAKE_BUILD_TYPE STREQUAL "Release" AND ${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel")
@@ -152,9 +157,15 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release" AND ${CMAKE_Fortran_COMPILER_ID} STREQUAL
152157
set(SCHEMES_TMP ${SCHEMES})
153158
# Need to determine the name of the scheme with its path
154159
list(FILTER SCHEMES_TMP INCLUDE REGEX ".*${SCHEME_NAME}$")
155-
SET_SOURCE_FILES_PROPERTIES(${SCHEMES_TMP}
156-
APPEND_STRING PROPERTY COMPILE_FLAGS
157-
" ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} -O1")
160+
if($ENV{DISABLE_CCPP_OPENMP})
161+
SET_SOURCE_FILES_PROPERTIES(${SCHEMES_TMP}
162+
APPEND_STRING PROPERTY COMPILE_FLAGS
163+
" ${CMAKE_Fortran_FLAGS_PHYSICS} -O1")
164+
else($ENV{DISABLE_CCPP_OPENMP})
165+
SET_SOURCE_FILES_PROPERTIES(${SCHEMES_TMP}
166+
APPEND_STRING PROPERTY COMPILE_FLAGS
167+
" ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} -O1")
168+
endif()
158169
endforeach()
159170
endif()
160171

@@ -166,8 +177,13 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release" AND ${CMAKE_Fortran_COMPILER_ID} STREQUAL
166177
set(SCHEMES_TMP ${SCHEMES})
167178
# Need to determine the name of the scheme with its path
168179
list(FILTER SCHEMES_TMP INCLUDE REGEX ".*${SCHEME_NAME}$")
169-
SET_SOURCE_FILES_PROPERTIES(${SCHEMES_TMP}
170-
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} -O0")
180+
if($ENV{DISABLE_CCPP_OPENMP})
181+
SET_SOURCE_FILES_PROPERTIES(${SCHEMES_TMP}
182+
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} -O0")
183+
else($ENV{DISABLE_CCPP_OPENMP})
184+
SET_SOURCE_FILES_PROPERTIES(${SCHEMES_TMP}
185+
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS} ${OpenMP_Fortran_FLAGS} -O0")
186+
endif()
171187
endforeach()
172188
endif()
173189

0 commit comments

Comments
 (0)