@@ -46,20 +46,23 @@ target_link_libraries(caf_mpi_static
46
46
set_target_properties (caf_mpi_static
47
47
PROPERTIES
48
48
POSITION_INDEPENDENT_CODE TRUE )
49
- if (WIN32 )
50
- target_compile_options (caf_mpi
51
- PUBLIC -pthread )
52
- target_link_libraries (caf_mpi
53
- PRIVATE pthread )
54
- set_target_properties (caf_mpi
55
- PROPERTIES LINKER_LANGUAGE Fortran )
56
- target_compile_options (caf_mpi_static
57
- PUBLIC -pthread )
58
- target_link_options (caf_mpi_static
59
- PUBLIC -pthread )
60
- target_link_libraries (caf_mpi_static
61
- PRIVATE gfortran )
62
- endif ()
49
+
50
+ set (THREADS_PREFER_PTHREAD_FLAG TRUE )
51
+ find_package (Threads REQUIRED )
52
+
53
+ message (STATUS "Threads found? ${Threads_FOUND} " )
54
+ message (STATUS "Thread library to use: ${CMAKE_THREAD_LIBS_INIT} " )
55
+ message (STATUS "Found threads library pthread compatible? ${CMAKE_USE_PTHREADS_INIT} " )
56
+
57
+ target_link_libraries (caf_mpi
58
+ PUBLIC Threads::Threads )
59
+ set_target_properties (caf_mpi
60
+ PROPERTIES LINKER_LANGUAGE Fortran )
61
+ target_link_libraries (caf_mpi_static
62
+ PUBLIC Threads::Threads )
63
+ target_link_libraries (caf_mpi_static
64
+ PRIVATE gfortran )
65
+
63
66
target_include_directories (caf_mpi PUBLIC
64
67
$< $< COMPILE_LANGUAGE:C> :${MPI_C_INCLUDE_PATH} >
65
68
$< BUILD_INTERFACE:${CMAKE_SOURCE_DIR} /src>
@@ -305,13 +308,14 @@ set(CMAKE_REQUIRED_INCLUDES ${old_cmake_required_includes})
305
308
#
306
309
# @CAF_VERSION@ @opencoarrays_aware_compiler@ @Fortran_COMPILER@ @CAF_MODDIR@
307
310
# @CAF_MPI_Fortran_LINK_FLAGS@ @CAF_MPI_Fortran_COMPILE_FLAGS@
308
- # @CAF_LIBS@ @CAF_MPI_LIBS@
311
+ # @CAF_LIBS@ @THREADS_LIB@ @ CAF_MPI_LIBS@
309
312
#
310
313
311
314
set (CAF_VERSION "${full_git_describe} " )
312
315
set (Fortran_COMPILER "${CMAKE_Fortran_COMPILER} " )
313
316
set (CAF_MODDIR "${CMAKE_INSTALL_INCLUDEDIR} /${mod_dir_tail} " )
314
317
set (MOD_DIR_FLAG "${CMAKE_Fortran_MODDIR_FLAG} " )
318
+ set (THREADS_LIB "${CMAKE_THREAD_LIBS_INIT} " )
315
319
set (CAF_MPI_LIBS "" )
316
320
foreach ( lib IN LISTS MPI_Fortran_LIBRARIES )
317
321
set (CAF_MPI_LIBS "${CAF_MPI_LIBS} \" ${lib} \" " )
@@ -330,7 +334,8 @@ string(STRIP "${CAF_MPI_Fortran_COMPILE_FLAGS}" CAF_MPI_Fortran_COMPILE_FLAGS)
330
334
set_target_properties (caf_mpi_static
331
335
PROPERTIES OUTPUT_NAME caf_mpi )
332
336
get_target_property (libcaf_static caf_mpi_static OUTPUT_NAME )
333
- set (CAF_LIBS "${CMAKE_INSTALL_LIBDIR} /${CMAKE_STATIC_LIBRARY_PREFIX}${libcaf_static}${CMAKE_STATIC_LIBRARY_SUFFIX} " )
337
+ set (CAF_LIBS
338
+ "${CMAKE_INSTALL_LIBDIR} /${CMAKE_STATIC_LIBRARY_PREFIX}${libcaf_static}${CMAKE_STATIC_LIBRARY_SUFFIX} " )
334
339
335
340
configure_file ("${CMAKE_SOURCE_DIR} /src/extensions/caf.in" "${CMAKE_BINARY_DIR} /${CMAKE_INSTALL_BINDIR} /caf"
336
341
@ONLY )
0 commit comments