@@ -87,38 +87,47 @@ else()
8787 endif ()
8888endif ()
8989
90-
91- include (CheckFortranSourceCompiles.cmake)
90+ if (gfortran_compiler)
91+ set (CMAKE_REQUIRED_FLAGS "-fcoarray=single" )
92+ endif ()
93+ include (CheckFortranSourceCompiles)
9294CHECK_Fortran_SOURCE_COMPILES("
9395 program main
9496 implicit none
9597 integer :: i
9698 i = this_image()
9799 end program
98100" Check_Simple_Coarray_Fortran_Source_Compiles)
101+ if (gfortran_compiler)
102+ unset (CMAKE_REQUIRED_FLAGS)
103+ endif ()
99104
100105include_directories (${CMAKE_CURRENT_SOURCE_DIR} /src)
101106
102107add_subdirectory (src)
103108add_subdirectory (install_prerequisites)
104109
110+ #-----------------------------------------------------
111+ # Publicize installed location to other CMake projects
112+ #-----------------------------------------------------
105113install (EXPORT OpenCoarraysTargets
106114 NAMESPACE
107115 OpenCoarrays::
108116 DESTINATION
109117 lib/cmake/opencoarrays
110118)
111- include (CMakePackageConfigHelpers)
119+ include (CMakePackageConfigHelpers) # standard CMake module
112120write_basic_package_version_file(
113121 "${CMAKE_CURRENT_BINARY_DIR} /OpenCoarraysConfigVersion.cmake"
114- VERSION 1.0
122+ VERSION " ${opencoarrays_VERSION} "
115123 COMPATIBILITY AnyNewerVersion
116124)
117- configure_file (OpenCoarraysConfig.cmake.in CMakeFiles/OpenCoarraysConfig.cmake @ONLY)
125+ configure_file ("${CMAKE_SOURCE_DIR} /cmake/pkg/OpenCoarraysConfig.cmake.in"
126+ "${CMAKE_CURRENT_BINARY_DIR} /CMakeFiles/OpenCoarraysConfig.cmake" @ONLY)
118127
119128install (
120129 FILES
121- ${CMAKE_CURRENT_BINARY_DIR} /CMakeFiles/OpenCoarraysConfig.cmake
130+ " ${CMAKE_CURRENT_BINARY_DIR} /CMakeFiles/OpenCoarraysConfig.cmake"
122131 "${CMAKE_CURRENT_BINARY_DIR} /OpenCoarraysConfigVersion.cmake"
123132 DESTINATION
124133 lib/cmake/opencoarrays
@@ -130,6 +139,17 @@ target_link_libraries(OpenCoarrays INTERFACE caf_mpi)
130139
131140install (DIRECTORY ${CMAKE_BINARY_DIR} /mod DESTINATION .)
132141
142+ #------------------------------------------
143+ # Add portable unistall command to makefile
144+ #------------------------------------------
145+ # Adapted from the CMake Wiki FAQ
146+ configure_file ( "${CMAKE_SOURCE_DIR} /cmake/uninstall.cmake.in" "${CMAKE_BINARY_DIR} /uninstall.cmake"
147+ @ONLY)
148+
149+ add_custom_target ( uninstall
150+ COMMAND ${CMAKE_COMMAND} -P "${CMAKE_BINARY_DIR} /uninstall.cmake" )
151+
152+
133153enable_testing ()
134154
135155function (add_mpi_test name num_mpi_proc path )
@@ -169,15 +189,10 @@ if(opencoarrays_aware_compiler)
169189 add_mpi_test(hello_multiverse 2 ${tests_root} /integration/coarrayHelloWorld/hello_multiverse)
170190 add_mpi_test(coarray_burgers_pde 2 ${tests_root} /integration/pde_solvers/coarrayBurgers/coarray_burgers_pde)
171191 add_mpi_test(co_heat 2 ${tests_root} /integration/pde_solvers/coarrayHeatSimplified/co_heat)
172-
173- execute_process (COMMAND uname -m
174- OUTPUT_VARIABLE MACHINE_TYPE)
175- if ("${CMAKE_SYSTEM_NAME} " MATCHES "Linux" )
176- if ("${MACHINE_TYPE} " MATCHES "x86_64" )
177- if ( NOT (DEFINED ENV{TRAVIS}))
178- add_mpi_test(coarray_navier_stokes 2 ${tests_root} /integration/pde_solvers/navier-stokes/coarray_navier_stokes)
179- set_property (TEST coarray_navier_stokes PROPERTY PASS_REGULAR_EXPRESSION "Test passed." )
180- endif ()
192+ if ( ("${CMAKE_SYSTEM_PROCESSOR} " MATCHES "x86_64" ) AND ("${CMAKE_SYSTEM_NAME} " MATCHES "Linux" ) )
193+ if ( NOT (DEFINED ENV{TRAVIS}))
194+ add_mpi_test(coarray_navier_stokes 2 ${tests_root} /integration/pde_solvers/navier-stokes/coarray_navier_stokes)
195+ set_property (TEST coarray_navier_stokes PROPERTY PASS_REGULAR_EXPRESSION "Test passed." )
181196 endif ()
182197 endif ()
183198else ()
0 commit comments