@@ -18,11 +18,11 @@ ecbuild_add_test(
18
18
SOURCES main.F90
19
19
LIBS
20
20
${LIBNAME_PREC}
21
- parkind_${DEFAULT_PRECISION}
22
- fiat
21
+ $< ${fiat_FOUND} : parkind_${DEFAULT_PRECISION} >
22
+ $< ${fiat_FOUND} : fiat>
23
23
OpenMP::OpenMP_Fortran
24
24
$<${HAVE_ACC} :OpenACC::OpenACC_Fortran>
25
- $<${HAVE_IO} :HDF5::HDF5>
25
+ $<$< BOOL : $ {HAVE_IO}> :HDF5::HDF5>
26
26
LINKER_LANGUAGE Fortran
27
27
ENVIRONMENT "DEV_ALLOC_SIZE=${dev_alloc_size} "
28
28
)
@@ -97,7 +97,6 @@ list(APPEND TEST_FILES
97
97
test_0_sized_transfer_wrap.F90
98
98
test_async.F90
99
99
test_bc.F90
100
- test_crc64.F90
101
100
test_field1d.F90
102
101
test_field_array.F90
103
102
test_field_array_0_size.F90
@@ -121,6 +120,10 @@ list(APPEND TEST_FILES
121
120
test_wrappernosynconfinal.F90
122
121
wrapper_modify_gpu.F90
123
122
)
123
+ if (fiat_FOUND)
124
+ list (APPEND TEST_FILES
125
+ test_crc64.F90 )
126
+ endif ()
124
127
125
128
#Place-holder for failing tests
126
129
set (FAILING_TEST_FILES
@@ -138,7 +141,7 @@ if(HAVE_ACC)
138
141
)
139
142
endif ()
140
143
141
- if (HAVE_IO )
144
+ if (HAVE_IO_SERIAL OR HAVE_IO_PARALLEL )
142
145
list (APPEND HDF5_TEST_FILES
143
146
test_hdf5_wr_parallel_field2d.F90
144
147
test_hdf5_rw_parallel_general.F90)
@@ -190,19 +193,21 @@ endif()
190
193
#Set OMP_NUM_THREADS for tests
191
194
set (omp_num_threads 8)
192
195
193
- if (HAVE_IO AND fiat_HAVE_MPI)
196
+
197
+ if (HAVE_IO_PARALLEL)
194
198
foreach (TEST_FILE ${HDF5_TEST_FILES} )
195
199
get_filename_component (TEST_NAME ${TEST_FILE} NAME_WE )
196
200
ecbuild_add_test(
197
201
TARGET ${TEST_NAME} .x
198
202
SOURCES ${TEST_FILE}
199
203
LIBS
200
204
${LIBNAME_PREC}
201
- parkind_${DEFAULT_PRECISION}
202
- fiat
205
+ $< ${fiat_FOUND} : parkind_${DEFAULT_PRECISION} >
206
+ $< ${fiat_FOUND} : fiat>
203
207
OpenMP::OpenMP_Fortran
208
+ MPI::MPI_Fortran
204
209
$<${HAVE_ACC} :OpenACC::OpenACC_Fortran>
205
- $<${HAVE_IO} :HDF5::HDF5>
210
+ $<$< BOOL : $ {HAVE_IO}> :HDF5::HDF5>
206
211
DEFINITIONS
207
212
$<${HAVE_FIELD_GANG} :HAVE_FIELD_GANG>
208
213
LINKER_LANGUAGE Fortran
@@ -224,6 +229,7 @@ foreach(TEST_FILE ${HDF5_TEST_FILES})
224
229
endif ()
225
230
target_compile_definitions ( ${TEST_NAME} .x PRIVATE
226
231
$<${HAVE_OMP_OFFLOAD} :OMPGPU>
232
+ $<${HAVE_MPI} :HAVE_MPI>
227
233
$<${HAVE_CUDA} :_CUDA> )
228
234
229
235
if ( DEFAULT_PRECISION MATCHES sp )
@@ -239,11 +245,11 @@ foreach(TEST_FILE ${TEST_FILES})
239
245
SOURCES ${TEST_FILE}
240
246
LIBS
241
247
${LIBNAME_PREC}
242
- parkind_${DEFAULT_PRECISION}
243
- fiat
248
+ $< ${fiat_FOUND} : parkind_${DEFAULT_PRECISION} >
249
+ $< ${fiat_FOUND} : fiat>
244
250
OpenMP::OpenMP_Fortran
245
251
$<${HAVE_ACC} :OpenACC::OpenACC_Fortran>
246
- $<${HAVE_IO} :HDF5::HDF5>
252
+ $<$< BOOL : $ {HAVE_IO}> :HDF5::HDF5>
247
253
DEFINITIONS
248
254
$<${HAVE_FIELD_GANG} :HAVE_FIELD_GANG>
249
255
LINKER_LANGUAGE Fortran
@@ -263,7 +269,7 @@ foreach(TEST_FILE ${TEST_FILES})
263
269
endif ()
264
270
endif ()
265
271
target_compile_definitions ( ${TEST_NAME} .x PRIVATE
266
- $<${HAVE_IO} :HDF5::HDF5>
272
+ $<$< BOOL : $ {HAVE_IO}> :HDF5::HDF5>
267
273
$<${HAVE_OMP_OFFLOAD} :OMPGPU>
268
274
$<${HAVE_CUDA} :_CUDA> )
269
275
@@ -275,10 +281,10 @@ endforeach()
275
281
foreach (FAILING_TEST_FILE ${FAILING_TEST_FILES} )
276
282
get_filename_component (FAILING_TEST_NAME ${FAILING_TEST_FILE} NAME_WE )
277
283
add_executable (${FAILING_TEST_NAME} .x ${FAILING_TEST_FILE} )
278
- target_link_libraries (${FAILING_TEST_NAME} .x PRIVATE ${LIBNAME_PREC} parkind_${DEFAULT_PRECISION} fiat)
284
+ target_link_libraries (${FAILING_TEST_NAME} .x PRIVATE ${LIBNAME_PREC} $< ${fiat_FOUND} : parkind_${DEFAULT_PRECISION} fiat> )
279
285
target_link_libraries (${FAILING_TEST_NAME} .x PRIVATE OpenMP::OpenMP_Fortran)
280
286
target_link_libraries (${FAILING_TEST_NAME} .x PRIVATE $<${HAVE_ACC} :OpenACC::OpenACC_Fortran>)
281
- target_link_libraries (${FAILING_TEST_NAME} .x PRIVATE $<${HAVE_IO} :HDF5::HDF5>)
287
+ target_link_libraries (${FAILING_TEST_NAME} .x PRIVATE $<$< BOOL : $ {HAVE_IO}> :HDF5::HDF5>)
282
288
set_target_properties (${FAILING_TEST_NAME} .x PROPERTIES LINKER_LANGUAGE Fortran)
283
289
add_test (NAME ${FAILING_TEST_NAME} COMMAND ${FAILING_TEST_NAME} .x)
284
290
set_property (TEST ${FAILING_TEST_NAME} PROPERTY WILL_FAIL TRUE )
@@ -296,10 +302,10 @@ endforeach()
296
302
foreach (ABOR1_TEST_FILE ${ABOR1_TEST_FILES} )
297
303
get_filename_component (ABOR1_TEST_NAME ${ABOR1_TEST_FILE} NAME_WE )
298
304
add_executable (${ABOR1_TEST_NAME} .x ${ABOR1_TEST_FILE} )
299
- target_link_libraries (${ABOR1_TEST_NAME} .x PRIVATE ${LIBNAME_PREC} parkind_${DEFAULT_PRECISION} fiat)
305
+ target_link_libraries (${ABOR1_TEST_NAME} .x PRIVATE ${LIBNAME_PREC} $< ${fiat_FOUND} : parkind_${DEFAULT_PRECISION} fiat> )
300
306
target_link_libraries (${ABOR1_TEST_NAME} .x PRIVATE OpenMP::OpenMP_Fortran)
301
307
target_link_libraries (${ABOR1_TEST_NAME} .x PRIVATE $<${HAVE_ACC} :OpenACC::OpenACC_Fortran>)
302
- target_link_libraries (${ABOR1_TEST_NAME} .x PRIVATE $<${HAVE_IO} :HDF5::HDF5>)
308
+ target_link_libraries (${ABOR1_TEST_NAME} .x PRIVATE $<$< BOOL : $ {HAVE_IO}> :HDF5::HDF5>)
303
309
set_target_properties (${ABOR1_TEST_NAME} .x PROPERTIES LINKER_LANGUAGE Fortran)
304
310
add_test (NAME ${ABOR1_TEST_NAME} COMMAND ${CMAKE_CURRENT_SOURCE_DIR} /abor1catcher.sh "./${ABOR1_TEST_NAME} .x" )
305
311
set_property (TEST ${ABOR1_TEST_NAME} PROPERTY ENVIRONMENT "OMP_NUM_THREADS=${omp_num_threads} ;DEV_ALLOC_SIZE=${dev_alloc_size} " )
@@ -313,20 +319,22 @@ foreach(ABOR1_TEST_FILE ${ABOR1_TEST_FILES})
313
319
target_compile_definitions ( ${ABOR1_TEST_NAME} .x PRIVATE $<${HAVE_CUDA} :_CUDA> )
314
320
endforeach ()
315
321
322
+ if (fiat_FOUND)
316
323
## Mixed precision unit-test
317
- ecbuild_add_test(
318
- TARGET init_wrapper_mixed_precision.x
319
- SOURCES init_wrapper_mixed_precision.F90
320
- LIBS
321
- ${LIBNAME} _sp
322
- fiat
323
- parkind_sp
324
- OpenMP::OpenMP_Fortran
325
- $<${HAVE_ACC} :OpenACC::OpenACC_Fortran>
326
- $<${HAVE_IO} :HDF5::HDF5>
327
- LINKER_LANGUAGE Fortran
328
- CONDITION ${HAVE_SINGLE_PRECISION}
329
- )
324
+ ecbuild_add_test(
325
+ TARGET init_wrapper_mixed_precision.x
326
+ SOURCES init_wrapper_mixed_precision.F90
327
+ LIBS
328
+ ${LIBNAME} _sp
329
+ $<${fiat_FOUND} :parkind_sp>
330
+ $<${fiat_FOUND} :fiat>
331
+ OpenMP::OpenMP_Fortran
332
+ $<${HAVE_ACC} :OpenACC::OpenACC_Fortran>
333
+ $<$<BOOL :${HAVE_IO} >:HDF5::HDF5>
334
+ LINKER_LANGUAGE Fortran
335
+ CONDITION ${HAVE_SINGLE_PRECISION}
336
+ )
337
+ endif ()
330
338
331
339
## Test presence of GPUs
332
340
add_executable (check_gpu_num.x check_gpu_num.F90)
0 commit comments