From 85b2bb6cb48a431c3f941227302b42bd7588edfb Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Thu, 31 Mar 2016 10:40:23 -0400 Subject: PushCheckStateTest: Fix syntax warning This commit fixes the following warning originally introduced in 1325260 (Add macros cmake_push/pop_check_state() as discussed on the list.) Argument not separated from preceding token by whitespace. --- Tests/CMakeTests/PushCheckStateTest.cmake.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/CMakeTests/PushCheckStateTest.cmake.in b/Tests/CMakeTests/PushCheckStateTest.cmake.in index e707b9a..212877d 100644 --- a/Tests/CMakeTests/PushCheckStateTest.cmake.in +++ b/Tests/CMakeTests/PushCheckStateTest.cmake.in @@ -14,14 +14,14 @@ cmake_pop_check_state() if (NOT "${CMAKE_REQUIRED_DEFINITIONS}" STREQUAL "defs2") set(fatal TRUE) - message("ERROR: "CMAKE_REQUIRED_DEFINITIONS is \"${CMAKE_REQUIRED_DEFINITIONS}\" (expected \"defs2\")" ) + message("ERROR: CMAKE_REQUIRED_DEFINITIONS is \"${CMAKE_REQUIRED_DEFINITIONS}\" (expected \"defs2\")" ) endif() cmake_pop_check_state() if (NOT "${CMAKE_REQUIRED_DEFINITIONS}" STREQUAL "defs1") set(fatal TRUE) - message("ERROR: "CMAKE_REQUIRED_DEFINITIONS is \"${CMAKE_REQUIRED_DEFINITIONS}\" (expected \"defs1\")" ) + message("ERROR: CMAKE_REQUIRED_DEFINITIONS is \"${CMAKE_REQUIRED_DEFINITIONS}\" (expected \"defs1\")" ) endif() -- cgit v0.12 From a3468b78f21d6f3520a351fde6db6dd9153df948 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Thu, 31 Mar 2016 10:58:33 -0400 Subject: PushCheckStateTest: Test all variables managed by the module --- Tests/CMakeTests/PushCheckStateTest.cmake.in | 52 +++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/Tests/CMakeTests/PushCheckStateTest.cmake.in b/Tests/CMakeTests/PushCheckStateTest.cmake.in index 212877d..195881c 100644 --- a/Tests/CMakeTests/PushCheckStateTest.cmake.in +++ b/Tests/CMakeTests/PushCheckStateTest.cmake.in @@ -1,29 +1,63 @@ include(CMakePushCheckState) +set(CMAKE_REQUIRED_INCLUDES dir1) set(CMAKE_REQUIRED_DEFINITIONS defs1 ) +set(CMAKE_REQUIRED_LIBRARIES lib1) +set(CMAKE_REQUIRED_FLAGS flag1) +set(CMAKE_REQUIRED_QUIET 1) cmake_push_check_state() +set(CMAKE_REQUIRED_INCLUDES dir2) set(CMAKE_REQUIRED_DEFINITIONS defs2) +set(CMAKE_REQUIRED_LIBRARIES lib2) +set(CMAKE_REQUIRED_FLAGS flag2) +set(CMAKE_REQUIRED_QUIET 2) cmake_push_check_state() set(CMAKE_REQUIRED_DEFINITIONS defs3) +set(CMAKE_REQUIRED_INCLUDES dir3) +set(CMAKE_REQUIRED_DEFINITIONS defs3) +set(CMAKE_REQUIRED_LIBRARIES lib3) +set(CMAKE_REQUIRED_FLAGS flag3) +set(CMAKE_REQUIRED_QUIET 3) cmake_pop_check_state() -if (NOT "${CMAKE_REQUIRED_DEFINITIONS}" STREQUAL "defs2") - set(fatal TRUE) - message("ERROR: CMAKE_REQUIRED_DEFINITIONS is \"${CMAKE_REQUIRED_DEFINITIONS}\" (expected \"defs2\")" ) -endif() +foreach(pair IN ITEMS + REQUIRED_INCLUDES|dir2 + REQUIRED_DEFINITIONS|defs2 + REQUIRED_LIBRARIES|lib2 + REQUIRED_FLAGS|flag2 + REQUIRED_QUIET|2 + ) + string(REPLACE "|" ";" pair "${pair}") + list(GET pair 0 var) + list(GET pair 1 expected) + if (NOT "${CMAKE_${var}}" STREQUAL "${expected}") + set(fatal TRUE) + message("ERROR: CMAKE_${var} is \"${CMAKE_${var}}\" (expected \"${expected}\")" ) + endif() +endforeach() cmake_pop_check_state() -if (NOT "${CMAKE_REQUIRED_DEFINITIONS}" STREQUAL "defs1") - set(fatal TRUE) - message("ERROR: CMAKE_REQUIRED_DEFINITIONS is \"${CMAKE_REQUIRED_DEFINITIONS}\" (expected \"defs1\")" ) -endif() - +foreach(pair IN ITEMS + REQUIRED_INCLUDES|dir1 + REQUIRED_DEFINITIONS|defs1 + REQUIRED_LIBRARIES|lib1 + REQUIRED_FLAGS|flag1 + REQUIRED_QUIET|1 + ) + string(REPLACE "|" ";" pair "${pair}") + list(GET pair 0 var) + list(GET pair 1 expected) + if (NOT "${CMAKE_${var}}" STREQUAL "${expected}") + set(fatal TRUE) + message("ERROR: CMAKE_${var} is \"${CMAKE_${var}}\" (expected \"${expected}\")" ) + endif() +endforeach() if(fatal) message(FATAL_ERROR "cmake_push_check_state() test failed") -- cgit v0.12 From 72a862a55bdf16f4ff41239d400bd6b1aacfc7c2 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Thu, 31 Mar 2016 11:11:02 -0400 Subject: CMakePushCheckState: Add support for CMAKE_EXTRA_INCLUDE_FILES This commit teaches the module to push/pop/reset state of variable CMAKE_EXTRA_INCLUDE_FILES used in CheckTypeSize module. --- Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst | 5 +++++ Modules/CMakePushCheckState.cmake | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst diff --git a/Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst b/Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst new file mode 100644 index 0000000..a4e9a14 --- /dev/null +++ b/Help/release/dev/CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILES.rst @@ -0,0 +1,5 @@ +CMakePushCheckState-CMAKE_EXTRA_INCLUDE_FILE +-------------------------------------------- + +* The :module:`CMakePushCheckState` module now pushes/pops/resets the variable + ``CMAKE_EXTRA_INCLUDE_FILE`` used in :module:`CheckTypeSize`. diff --git a/Modules/CMakePushCheckState.cmake b/Modules/CMakePushCheckState.cmake index bf4ec0e..6958da1 100644 --- a/Modules/CMakePushCheckState.cmake +++ b/Modules/CMakePushCheckState.cmake @@ -8,8 +8,8 @@ # CMAKE_POP_CHECK_STATE() and CMAKE_RESET_CHECK_STATE() These macros can # be used to save, restore and reset (i.e., clear contents) the state of # the variables CMAKE_REQUIRED_FLAGS, CMAKE_REQUIRED_DEFINITIONS, -# CMAKE_REQUIRED_LIBRARIES and CMAKE_REQUIRED_INCLUDES used by the -# various Check-files coming with CMake, like e.g. +# CMAKE_REQUIRED_LIBRARIES, CMAKE_REQUIRED_INCLUDES and CMAKE_EXTRA_INCLUDE_FILES +# used by the various Check-files coming with CMake, like e.g. # check_function_exists() etc. The variable contents are pushed on a # stack, pushing multiple times is supported. This is useful e.g. when # executing such tests in a Find-module, where they have to be set, but @@ -49,6 +49,7 @@ macro(CMAKE_RESET_CHECK_STATE) + set(CMAKE_EXTRA_INCLUDE_FILES) set(CMAKE_REQUIRED_INCLUDES) set(CMAKE_REQUIRED_DEFINITIONS) set(CMAKE_REQUIRED_LIBRARIES) @@ -65,6 +66,7 @@ macro(CMAKE_PUSH_CHECK_STATE) math(EXPR _CMAKE_PUSH_CHECK_STATE_COUNTER "${_CMAKE_PUSH_CHECK_STATE_COUNTER}+1") + set(_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_EXTRA_INCLUDE_FILES}) set(_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_INCLUDES}) set(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS}) set(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER} ${CMAKE_REQUIRED_LIBRARIES}) @@ -82,6 +84,7 @@ macro(CMAKE_POP_CHECK_STATE) # don't pop more than we pushed if("${_CMAKE_PUSH_CHECK_STATE_COUNTER}" GREATER "0") + set(CMAKE_EXTRA_INCLUDE_FILES ${_CMAKE_EXTRA_INCLUDE_FILES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_CMAKE_PUSH_CHECK_STATE_COUNTER}}) -- cgit v0.12 From fad5d59cf42ad876aa5553fe34beaf6a8f5a6cd1 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Thu, 31 Mar 2016 11:11:32 -0400 Subject: PushCheckStateTest: Update test to check CMAKE_EXTRA_INCLUDE_FILES --- Tests/CMakeTests/PushCheckStateTest.cmake.in | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Tests/CMakeTests/PushCheckStateTest.cmake.in b/Tests/CMakeTests/PushCheckStateTest.cmake.in index 195881c..b4c48f4 100644 --- a/Tests/CMakeTests/PushCheckStateTest.cmake.in +++ b/Tests/CMakeTests/PushCheckStateTest.cmake.in @@ -1,5 +1,6 @@ include(CMakePushCheckState) +set(CMAKE_EXTRA_INCLUDE_FILES file1) set(CMAKE_REQUIRED_INCLUDES dir1) set(CMAKE_REQUIRED_DEFINITIONS defs1 ) set(CMAKE_REQUIRED_LIBRARIES lib1) @@ -8,6 +9,7 @@ set(CMAKE_REQUIRED_QUIET 1) cmake_push_check_state() +set(CMAKE_EXTRA_INCLUDE_FILES file2) set(CMAKE_REQUIRED_INCLUDES dir2) set(CMAKE_REQUIRED_DEFINITIONS defs2) set(CMAKE_REQUIRED_LIBRARIES lib2) @@ -16,6 +18,7 @@ set(CMAKE_REQUIRED_QUIET 2) cmake_push_check_state() +set(CMAKE_EXTRA_INCLUDE_FILES file3) set(CMAKE_REQUIRED_DEFINITIONS defs3) set(CMAKE_REQUIRED_INCLUDES dir3) set(CMAKE_REQUIRED_DEFINITIONS defs3) @@ -26,6 +29,7 @@ set(CMAKE_REQUIRED_QUIET 3) cmake_pop_check_state() foreach(pair IN ITEMS + EXTRA_INCLUDE_FILES|file2 REQUIRED_INCLUDES|dir2 REQUIRED_DEFINITIONS|defs2 REQUIRED_LIBRARIES|lib2 @@ -44,6 +48,7 @@ endforeach() cmake_pop_check_state() foreach(pair IN ITEMS + EXTRA_INCLUDE_FILES|file1 REQUIRED_INCLUDES|dir1 REQUIRED_DEFINITIONS|defs1 REQUIRED_LIBRARIES|lib1 -- cgit v0.12