include(CMakePushCheckState) set(CMAKE_REQUIRED_DEFINITIONS defs1 ) cmake_push_check_state() set(CMAKE_REQUIRED_DEFINITIONS defs2) cmake_push_check_state() set(CMAKE_REQUIRED_DEFINITIONS defs3) 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() 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() if(fatal) message(FATAL_ERROR "cmake_push_check_state() test failed") endif()