diff options
author | Brad King <brad.king@kitware.com> | 2020-05-25 14:58:54 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-05-25 14:59:01 (GMT) |
commit | a354b7f21e858728606ddc7c275bad35914d8eaa (patch) | |
tree | 3766fcf93b02ebbe0ecc48bbce0f7e99258850d5 /Tests | |
parent | b82bdbf44aeef29ba7b266989f1557a0ffcaa969 (diff) | |
parent | af96c0f4faf5bf9f4a4dbc958b09a1dfc58dab38 (diff) | |
download | CMake-a354b7f21e858728606ddc7c275bad35914d8eaa.zip CMake-a354b7f21e858728606ddc7c275bad35914d8eaa.tar.gz CMake-a354b7f21e858728606ddc7c275bad35914d8eaa.tar.bz2 |
Merge topic 'CheckLinkerFlag-module'
af96c0f4fa CheckLinkerFlag: Add module to check validity of linker flags
3c4cc77d55 Tests: Extend Fortran compiler information
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4777
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CheckFortran.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CMakeLists.txt | 6 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CheckCLinkerFlag.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CheckCXXLinkerFlag.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CheckFortranLinkerFlag.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CheckLinkerFlag.cmake | 14 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CheckOBJCLinkerFlag.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/CheckOBJCXXLinkerFlag.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CheckLinkerFlag/RunCMakeTest.cmake | 14 |
10 files changed, 57 insertions, 0 deletions
diff --git a/Tests/CheckFortran.cmake b/Tests/CheckFortran.cmake index 16a8ed2..33e1bfb 100644 --- a/Tests/CheckFortran.cmake +++ b/Tests/CheckFortran.cmake @@ -11,6 +11,7 @@ if(NOT DEFINED CMAKE_Fortran_COMPILER) project(CheckFortran Fortran) file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\" \"set(CMAKE_Fortran_COMPILER \\\"\${CMAKE_Fortran_COMPILER}\\\")\\n\" + \"set(CMAKE_Fortran_COMPILER_ID \\\"\${CMAKE_Fortran_COMPILER_ID}\\\")\\n\" \"set(CMAKE_Fortran_FLAGS \\\"\${CMAKE_Fortran_FLAGS}\\\")\\n\" \"set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 \\\"\${CMAKE_Fortran_COMPILER_SUPPORTS_F90}\\\")\\n\" ) @@ -45,6 +46,8 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\" message(STATUS "${_desc} - ${CMAKE_Fortran_COMPILER}") set(CMAKE_Fortran_COMPILER "${CMAKE_Fortran_COMPILER}" CACHE FILEPATH "Fortran compiler") mark_as_advanced(CMAKE_Fortran_COMPILER) + set(CMAKE_Fortran_COMPILER_ID "${CMAKE_Fortran_COMPILER_ID}" CACHE STRING "Fortran compiler Id") + mark_as_advanced(CMAKE_Fortran_COMPILER_ID) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}" CACHE STRING "Fortran flags") mark_as_advanced(CMAKE_Fortran_FLAGS) set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 "${CMAKE_Fortran_COMPILER_SUPPORTS_F90}" CACHE BOOL "Fortran compiler supports F90") diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 5f3f38b..983f7e4 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -488,6 +488,12 @@ add_RunCMake_test(target_include_directories) add_RunCMake_test(target_sources) add_RunCMake_test(CheckModules) add_RunCMake_test(CheckIPOSupported) +if (CMAKE_SYSTEM_NAME MATCHES "(Linux|Darwin)" + AND (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU" OR CMAKE_Fortran_COMPILER_ID MATCHES "GNU")) + add_RunCMake_test(CheckLinkerFlag -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} + -DCMAKE_Fortran_COMPILER_ID=${CMAKE_Fortran_COMPILER_ID}) +endif() + add_RunCMake_test(CommandLine -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCYGWIN=${CYGWIN} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}) add_RunCMake_test(CommandLineTar) diff --git a/Tests/RunCMake/CheckLinkerFlag/CMakeLists.txt b/Tests/RunCMake/CheckLinkerFlag/CMakeLists.txt new file mode 100644 index 0000000..0421e28 --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.13) + +project(${RunCMake_TEST} LANGUAGES NONE) + +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CheckLinkerFlag/CheckCLinkerFlag.cmake b/Tests/RunCMake/CheckLinkerFlag/CheckCLinkerFlag.cmake new file mode 100644 index 0000000..c8e87a4 --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CheckCLinkerFlag.cmake @@ -0,0 +1,3 @@ + +set (CHECK_LANGUAGE C) +include ("${CMAKE_CURRENT_SOURCE_DIR}/CheckLinkerFlag.cmake") diff --git a/Tests/RunCMake/CheckLinkerFlag/CheckCXXLinkerFlag.cmake b/Tests/RunCMake/CheckLinkerFlag/CheckCXXLinkerFlag.cmake new file mode 100644 index 0000000..4e299b9 --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CheckCXXLinkerFlag.cmake @@ -0,0 +1,3 @@ + +set (CHECK_LANGUAGE CXX) +include ("${CMAKE_CURRENT_SOURCE_DIR}/CheckLinkerFlag.cmake") diff --git a/Tests/RunCMake/CheckLinkerFlag/CheckFortranLinkerFlag.cmake b/Tests/RunCMake/CheckLinkerFlag/CheckFortranLinkerFlag.cmake new file mode 100644 index 0000000..bca288e --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CheckFortranLinkerFlag.cmake @@ -0,0 +1,3 @@ + +set (CHECK_LANGUAGE Fortran) +include ("${CMAKE_CURRENT_SOURCE_DIR}/CheckLinkerFlag.cmake") diff --git a/Tests/RunCMake/CheckLinkerFlag/CheckLinkerFlag.cmake b/Tests/RunCMake/CheckLinkerFlag/CheckLinkerFlag.cmake new file mode 100644 index 0000000..c3bd465 --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CheckLinkerFlag.cmake @@ -0,0 +1,14 @@ + +enable_language (${CHECK_LANGUAGE}) + +include(CheckLinkerFlag) + +check_linker_flag(${CHECK_LANGUAGE} "LINKER:-L,/dir" VALID_LINKER_FLAG) +if(NOT VALID_LINKER_FLAG) + message(SEND_ERROR "Test fail for valid linker flag.") +endif() + +check_linker_flag(${CHECK_LANGUAGE} "LINKER:-D" INVALID_LINKER_FLAG) +if(INVALID_LINKER_FLAG) + message(SEND_ERROR "Test fail for invalid linker flag.") +endif() diff --git a/Tests/RunCMake/CheckLinkerFlag/CheckOBJCLinkerFlag.cmake b/Tests/RunCMake/CheckLinkerFlag/CheckOBJCLinkerFlag.cmake new file mode 100644 index 0000000..fa1d18e --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CheckOBJCLinkerFlag.cmake @@ -0,0 +1,3 @@ + +set (CHECK_LANGUAGE OBJC) +include ("${CMAKE_CURRENT_SOURCE_DIR}/CheckLinkerFlag.cmake") diff --git a/Tests/RunCMake/CheckLinkerFlag/CheckOBJCXXLinkerFlag.cmake b/Tests/RunCMake/CheckLinkerFlag/CheckOBJCXXLinkerFlag.cmake new file mode 100644 index 0000000..414efb8 --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/CheckOBJCXXLinkerFlag.cmake @@ -0,0 +1,3 @@ + +set (CHECK_LANGUAGE OBJCXX) +include ("${CMAKE_CURRENT_SOURCE_DIR}/CheckLinkerFlag.cmake") diff --git a/Tests/RunCMake/CheckLinkerFlag/RunCMakeTest.cmake b/Tests/RunCMake/CheckLinkerFlag/RunCMakeTest.cmake new file mode 100644 index 0000000..224a2a3 --- /dev/null +++ b/Tests/RunCMake/CheckLinkerFlag/RunCMakeTest.cmake @@ -0,0 +1,14 @@ +include(RunCMake) + +if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU") + run_cmake(CheckCLinkerFlag) + run_cmake(CheckCXXLinkerFlag) + if (APPLE) + run_cmake(CheckOBJCLinkerFlag) + run_cmake(CheckOBJCXXLinkerFlag) + endif() +endif() + +if (CMAKE_Fortran_COMPILER_ID MATCHES "GNU") + run_cmake(CheckFortranLinkerFlag) +endif() |