diff options
author | Christian Pfeiffer <cpfeiffer@live.de> | 2017-05-05 15:32:52 (GMT) |
---|---|---|
committer | Christian Pfeiffer <cpfeiffer@live.de> | 2017-05-06 14:36:24 (GMT) |
commit | 2cfea104a632badc453364ec5babf97db7aa01e1 (patch) | |
tree | a03f8074ce90ef228fa41a3d647fbadd4204ed3d | |
parent | a83250880ad511d92d96bfd860873b9c79c0f462 (diff) | |
download | CMake-2cfea104a632badc453364ec5babf97db7aa01e1.zip CMake-2cfea104a632badc453364ec5babf97db7aa01e1.tar.gz CMake-2cfea104a632badc453364ec5babf97db7aa01e1.tar.bz2 |
FortranCInt: Pass CONFIG flags to try_compile
This change ensures that Intel Fortran's /libs: in
CMAKE_Fortran_FLAGS and Visual C++'s /MT or /MD in the
CMAKE_C_FLAGS_RELEASE do not conflict with each other.
-rw-r--r-- | Modules/FortranCInterface/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Modules/FortranCInterface/Detect.cmake | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/Modules/FortranCInterface/CMakeLists.txt b/Modules/FortranCInterface/CMakeLists.txt index 3a66f68..e067859 100644 --- a/Modules/FortranCInterface/CMakeLists.txt +++ b/Modules/FortranCInterface/CMakeLists.txt @@ -93,11 +93,12 @@ add_library(myfort STATIC mysub.f my_sub.f ${myfort_modules}) # Provide symbols through C but fall back to Fortran. add_library(symbols STATIC ${symbol_sources}) -target_link_libraries(symbols myfort) +target_link_libraries(symbols PUBLIC myfort) + # In case the Fortran compiler produces PIC by default make sure # the C compiler produces PIC even if it is not its default. set_property(TARGET symbols PROPERTY POSITION_INDEPENDENT_CODE 1) # Require symbols through Fortran. add_executable(FortranCInterface main.F call_sub.f ${call_mod}) -target_link_libraries(FortranCInterface symbols) +target_link_libraries(FortranCInterface PUBLIC symbols) diff --git a/Modules/FortranCInterface/Detect.cmake b/Modules/FortranCInterface/Detect.cmake index 7612890..7789785 100644 --- a/Modules/FortranCInterface/Detect.cmake +++ b/Modules/FortranCInterface/Detect.cmake @@ -27,6 +27,7 @@ unset(FortranCInterface_VERIFIED_CXX CACHE) set(_result) # Build a sample project which reports symbols. +set(CMAKE_TRY_COMPILE_CONFIGURATION Release) try_compile(FortranCInterface_COMPILED ${FortranCInterface_BINARY_DIR} ${FortranCInterface_SOURCE_DIR} @@ -35,6 +36,8 @@ try_compile(FortranCInterface_COMPILED CMAKE_FLAGS "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}" "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}" + "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}" + "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}" OUTPUT_VARIABLE FortranCInterface_OUTPUT) set(FortranCInterface_COMPILED ${FortranCInterface_COMPILED}) unset(FortranCInterface_COMPILED CACHE) @@ -43,7 +46,7 @@ unset(FortranCInterface_COMPILED CACHE) if(FortranCInterface_COMPILED) find_program(FortranCInterface_EXE NAMES FortranCInterface${CMAKE_EXECUTABLE_SUFFIX} - PATHS ${FortranCInterface_BINARY_DIR} ${FortranCInterface_BINARY_DIR}/Debug + PATHS ${FortranCInterface_BINARY_DIR} ${FortranCInterface_BINARY_DIR}/Release NO_DEFAULT_PATH ) set(FortranCInterface_EXE ${FortranCInterface_EXE}) |