فهرست منبع

FortranCInterface: Pass all flags to VERIFY project (#13579)

Teach FortranCInterface_VERIFY to build the test project in a specific
configuration and pass all flags for that configuration.  This ensures
that any modifications made by the user or project to the flag are used in
the test project consistently.
Brad King 13 سال پیش
والد
کامیت
71491bbe8f
1فایلهای تغییر یافته به همراه5 افزوده شده و 1 حذف شده
  1. 5 1
      Modules/FortranCInterface.cmake

+ 5 - 1
Modules/FortranCInterface.cmake

@@ -61,7 +61,7 @@
 # If the check fails and QUIET is not given the function terminates
 # with a FATAL_ERROR message describing the problem.  The purpose of
 # this check is to stop a build early for incompatible compiler
-# combinations.
+# combinations.  The test is built in the Release configuration.
 #
 # FortranCInterface is aware of possible GLOBAL and MODULE manglings
 # for many Fortran compilers, but it also provides an interface to
@@ -250,6 +250,7 @@ function(FortranCInterface_VERIFY)
     message(STATUS "${_desc}")
 
     # Build a sample project which reports symbols.
+    set(CMAKE_TRY_COMPILE_CONFIGURATION Release)
     try_compile(FortranCInterface_VERIFY_${lang}_COMPILED
       ${FortranCInterface_BINARY_DIR}/Verify${lang}
       ${FortranCInterface_SOURCE_DIR}/Verify
@@ -259,6 +260,9 @@ function(FortranCInterface_VERIFY)
                  "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}"
                  "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}"
                  "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
+                 "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
+                 "-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
+                 "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
       OUTPUT_VARIABLE _output)
     file(WRITE "${FortranCInterface_BINARY_DIR}/Verify${lang}/output.txt" "${_output}")