mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-23 23:18:38 -06:00
CheckCompilerFlag: Add tests to verify module correctness
This commit is contained in:
committed by
Brad King
parent
b1898bf975
commit
8ac9719659
@@ -538,6 +538,7 @@ add_RunCMake_test(target_compile_features)
|
||||
add_RunCMake_test(target_compile_options -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID})
|
||||
add_RunCMake_test(target_include_directories)
|
||||
add_RunCMake_test(target_sources)
|
||||
add_RunCMake_test(CheckCompilerFlag)
|
||||
add_RunCMake_test(CheckSourceCompiles)
|
||||
add_RunCMake_test(CheckSourceRuns)
|
||||
add_RunCMake_test(CheckModules)
|
||||
|
||||
5
Tests/RunCMake/CheckCompilerFlag/CMakeLists.txt
Normal file
5
Tests/RunCMake/CheckCompilerFlag/CMakeLists.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
project(${RunCMake_TEST} LANGUAGES NONE)
|
||||
|
||||
include(${RunCMake_TEST}.cmake)
|
||||
15
Tests/RunCMake/CheckCompilerFlag/CheckCCompilerFlag.cmake
Normal file
15
Tests/RunCMake/CheckCompilerFlag/CheckCCompilerFlag.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
enable_language (C)
|
||||
include(CheckCompilerFlag)
|
||||
|
||||
check_compiler_flag(C "-_this_is_not_a_flag_" SHOULD_FAIL)
|
||||
if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid C compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang" AND NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
check_compiler_flag(C "-x c" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_C_COMPILER_ID} compiler flag '-x c' check failed")
|
||||
endif()
|
||||
endif()
|
||||
15
Tests/RunCMake/CheckCompilerFlag/CheckCXXCompilerFlag.cmake
Normal file
15
Tests/RunCMake/CheckCompilerFlag/CheckCXXCompilerFlag.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
enable_language (CXX)
|
||||
include(CheckCompilerFlag)
|
||||
|
||||
check_compiler_flag(CXX "-_this_is_not_a_flag_" SHOULD_FAIL)
|
||||
if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid CXX compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
check_compiler_flag(CXX "-x c++" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_CXX_COMPILER_ID} compiler flag '-x c++' check failed")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,14 @@
|
||||
enable_language (Fortran)
|
||||
include(CheckCompilerFlag)
|
||||
|
||||
check_compiler_flag(Fortran "-_this_is_not_a_flag_" SHOULD_FAIL)
|
||||
if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid Fortran compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
|
||||
check_compiler_flag(Fortran "-Wall" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_Fortran_COMPILER_ID} compiler flag '-Wall' check failed")
|
||||
endif()
|
||||
endif()
|
||||
12
Tests/RunCMake/CheckCompilerFlag/CheckOBJCCompilerFlag.cmake
Normal file
12
Tests/RunCMake/CheckCompilerFlag/CheckOBJCCompilerFlag.cmake
Normal file
@@ -0,0 +1,12 @@
|
||||
enable_language (OBJC)
|
||||
include(CheckCompilerFlag)
|
||||
|
||||
check_compiler_flag(OBJC "-_this_is_not_a_flag_" SHOULD_FAIL)
|
||||
if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid OBJC compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
check_compiler_flag(OBJC "-Wall" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_OBJC_COMPILER_ID} compiler flag '-Wall' check failed")
|
||||
endif()
|
||||
@@ -0,0 +1,12 @@
|
||||
enable_language (OBJCXX)
|
||||
include(CheckCompilerFlag)
|
||||
|
||||
check_compiler_flag(OBJCXX "-_this_is_not_a_flag_" SHOULD_FAIL)
|
||||
if(SHOULD_FAIL)
|
||||
message(SEND_ERROR "invalid OBJCXX compile flag didn't fail.")
|
||||
endif()
|
||||
|
||||
check_compiler_flag(OBJCXX "-Wall" SHOULD_WORK)
|
||||
if(NOT SHOULD_WORK)
|
||||
message(SEND_ERROR "${CMAKE_OBJCXX_COMPILER_ID} compiler flag '-Wall' check failed")
|
||||
endif()
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,2 @@
|
||||
CMake Error at .*CheckCompilerFlag\.cmake:[0-9]+ \(message\):
|
||||
check_compiler_flag: FAKE_LANG: unknown language.
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
include(CheckCompilerFlag)
|
||||
check_compiler_flag(FAKE_LANG "int main() {return 0;}" SHOULD_BUILD)
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,2 @@
|
||||
CMake Error at .*CheckCompilerFlag\.cmake:[0-9]+ \(message\):
|
||||
check_compiler_flag: C: needs to be enabled before use.
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
include(CheckCompilerFlag)
|
||||
check_compiler_flag(C "int main() {return 0;}" SHOULD_BUILD)
|
||||
16
Tests/RunCMake/CheckCompilerFlag/RunCMakeTest.cmake
Normal file
16
Tests/RunCMake/CheckCompilerFlag/RunCMakeTest.cmake
Normal file
@@ -0,0 +1,16 @@
|
||||
include(RunCMake)
|
||||
|
||||
run_cmake(NotEnabledLanguage)
|
||||
run_cmake(NonExistentLanguage)
|
||||
|
||||
run_cmake(CheckCCompilerFlag)
|
||||
run_cmake(CheckCXXCompilerFlag)
|
||||
|
||||
if (APPLE)
|
||||
run_cmake(CheckOBJCCompilerFlag)
|
||||
run_cmake(CheckOBJCXXCompilerFlag)
|
||||
endif()
|
||||
|
||||
if (CMAKE_Fortran_COMPILER_ID)
|
||||
run_cmake(CheckFortranCompilerFlag)
|
||||
endif()
|
||||
Reference in New Issue
Block a user