@@ -46,20 +46,23 @@ target_link_libraries(caf_mpi_static
4646set_target_properties (caf_mpi_static
4747 PROPERTIES
4848 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+
6366target_include_directories (caf_mpi PUBLIC
6467 $<$<COMPILE_LANGUAGE:C>:${MPI_C_INCLUDE_PATH} >
6568 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR} /src>
@@ -305,13 +308,14 @@ set(CMAKE_REQUIRED_INCLUDES ${old_cmake_required_includes})
305308#
306309# @CAF_VERSION@ @opencoarrays_aware_compiler@ @Fortran_COMPILER@ @CAF_MODDIR@
307310# @CAF_MPI_Fortran_LINK_FLAGS@ @CAF_MPI_Fortran_COMPILE_FLAGS@
308- # @CAF_LIBS@ @CAF_MPI_LIBS@
311+ # @CAF_LIBS@ @THREADS_LIB@ @ CAF_MPI_LIBS@
309312#
310313
311314set (CAF_VERSION "${full_git_describe} " )
312315set (Fortran_COMPILER "${CMAKE_Fortran_COMPILER} " )
313316set (CAF_MODDIR "${CMAKE_INSTALL_INCLUDEDIR} /${mod_dir_tail} " )
314317set (MOD_DIR_FLAG "${CMAKE_Fortran_MODDIR_FLAG} " )
318+ set (THREADS_LIB "${CMAKE_THREAD_LIBS_INIT} " )
315319set (CAF_MPI_LIBS "" )
316320foreach ( lib IN LISTS MPI_Fortran_LIBRARIES)
317321 set (CAF_MPI_LIBS "${CAF_MPI_LIBS} \" ${lib} \" " )
@@ -330,7 +334,8 @@ string(STRIP "${CAF_MPI_Fortran_COMPILE_FLAGS}" CAF_MPI_Fortran_COMPILE_FLAGS)
330334set_target_properties (caf_mpi_static
331335 PROPERTIES OUTPUT_NAME caf_mpi)
332336get_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} " )
334339
335340configure_file ("${CMAKE_SOURCE_DIR} /src/extensions/caf.in" "${CMAKE_BINARY_DIR} /${CMAKE_INSTALL_BINDIR} /caf"
336341 @ONLY)
0 commit comments