summaryrefslogtreecommitdiffstats
path: root/Tests/FortranC/CMakeLists.txt
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-12-14 17:36:25 (GMT)
committerBrad King <brad.king@kitware.com>2009-12-14 17:36:25 (GMT)
commit555fcbd2e2e5cafbb7cbf55b88093cc8f73a8009 (patch)
tree2ab8a9c2032c7ce1a9c27b31570e02cfd8b69af2 /Tests/FortranC/CMakeLists.txt
parent126c93cddae95f46060f6d88af9c92dc6297f88d (diff)
downloadCMake-555fcbd2e2e5cafbb7cbf55b88093cc8f73a8009.zip
CMake-555fcbd2e2e5cafbb7cbf55b88093cc8f73a8009.tar.gz
CMake-555fcbd2e2e5cafbb7cbf55b88093cc8f73a8009.tar.bz2
Test FortranCInterface flag propagation
We create test FortranC.Flags to try passing per-language flags from a project into its FortranCInterface detect/verify checks. We wrap the compilers with scripts that enforce presence of expected flags.
Diffstat (limited to 'Tests/FortranC/CMakeLists.txt')
-rw-r--r--Tests/FortranC/CMakeLists.txt25
1 files changed, 25 insertions, 0 deletions
diff --git a/Tests/FortranC/CMakeLists.txt b/Tests/FortranC/CMakeLists.txt
new file mode 100644
index 0000000..e4e8ca1
--- /dev/null
+++ b/Tests/FortranC/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 2.8)
+project(FortranC C Fortran)
+
+# Skip this test for compilers not known to be compatible.
+if(NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "${CMAKE_Fortran_COMPILER_ID}" OR
+ "${CMAKE_C_COMPILER_ID}-${CMAKE_Fortran_COMPILER_ID}" MATCHES "^(MSVC-Intel)$"))
+ message(STATUS "${CMAKE_C_COMPILER_ID} C and ${CMAKE_Fortran_COMPILER_ID} Fortran not known to be compatible!")
+ return()
+endif()
+
+# Wipe out all FortranCInterface information to ensure it re-runs.
+file(REMOVE_RECURSE ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterface)
+
+if(FortranC_TEST_FLAGS)
+ # Test whether FortranCInterface checks see C flags.
+ set(ENV{TEST_OPT_CC} "--test-opt-cc")
+ set(CMAKE_C_FLAGS "$ENV{TEST_OPT_CC}")
+
+ # Test whether FortranCInterface checks see Fortran flags.
+ set(ENV{TEST_OPT_FC} "--test-opt-fc")
+ set(CMAKE_Fortran_FLAGS "$ENV{TEST_OPT_FC}")
+endif()
+
+include(FortranCInterface)
+FortranCInterface_VERIFY()