Require CMake 2.8.4 or greater to build CMake
This allows the use of the $<TARGET_FILE:...> generator expression as a replacement for the use of the LOCATION target property. The use of the LOCATION target property is now deprecated for in-build targets. Also drop other checks for older CMake versions: * Simplify cmake_set_target_folder macro. * Use find_package(LibArchive) unconditionally. * Simplify condition for running testVisualStudioSlnParser test. * Convert two macros to functions. * Unconditionally run the CTestTestRerunFailed test.
This commit is contained in:
parent
872db622d6
commit
920ffbf50f
|
@ -9,8 +9,7 @@
|
|||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)
|
||||
set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
|
||||
cmake_minimum_required(VERSION 2.8.4 FATAL_ERROR)
|
||||
if(POLICY CMP0025)
|
||||
cmake_policy(SET CMP0025 NEW)
|
||||
endif()
|
||||
|
@ -196,15 +195,8 @@ mark_as_advanced(CMAKE_USE_FOLDERS)
|
|||
macro(CMAKE_SET_TARGET_FOLDER tgt folder)
|
||||
if(CMAKE_USE_FOLDERS)
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
# Really, I just want this to be an "if(TARGET ${tgt})" ...
|
||||
# but I'm not sure that our min req'd., CMake 2.4.5 can handle
|
||||
# that... so I'm just activating this for now, with a version
|
||||
# compare, and only for MSVC builds.
|
||||
if(MSVC)
|
||||
if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.8)
|
||||
set_property(TARGET "${tgt}" PROPERTY FOLDER "${folder}")
|
||||
endif()
|
||||
if(MSVC AND TARGET ${tgt})
|
||||
set_property(TARGET "${tgt}" PROPERTY FOLDER "${folder}")
|
||||
endif()
|
||||
else()
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
|
||||
|
@ -326,11 +318,7 @@ macro (CMAKE_BUILD_UTILITIES)
|
|||
#---------------------------------------------------------------------
|
||||
# Build or use system libarchive for CMake and CTest.
|
||||
if(CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||
if(EXISTS ${CMAKE_ROOT}/Modules/FindLibArchive.cmake) # added in 2.8.3
|
||||
find_package(LibArchive)
|
||||
else()
|
||||
include(${CMake_SOURCE_DIR}/Modules/FindLibArchive.cmake)
|
||||
endif()
|
||||
find_package(LibArchive)
|
||||
if(NOT LibArchive_FOUND)
|
||||
message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found!")
|
||||
endif()
|
||||
|
|
|
@ -12,7 +12,7 @@ set(CMakeLib_TESTS
|
|||
testXMLSafe
|
||||
)
|
||||
|
||||
if(WIN32 AND NOT UNIX) # Just if(WIN32) when CMake >= 2.8.4 is required
|
||||
if(WIN32)
|
||||
list(APPEND CMakeLib_TESTS
|
||||
testVisualStudioSlnParser
|
||||
)
|
||||
|
|
|
@ -1985,12 +1985,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
"Process file.*foo.py.*Total LOC:.*13.*Percentage Coverage: 84.62.*"
|
||||
ENVIRONMENT COVFILE=)
|
||||
|
||||
# Use macro, not function so that build can still be driven by CMake 2.4.
|
||||
# After 2.6 is required, this could be a function without the extra 'set'
|
||||
# calls.
|
||||
#
|
||||
macro(add_config_tests cfg)
|
||||
set(cfg "${cfg}")
|
||||
function(add_config_tests cfg)
|
||||
set(base "${CMake_BINARY_DIR}/Tests/CTestConfig")
|
||||
|
||||
# Test -S script with a -C config arg to ctest:
|
||||
|
@ -2014,7 +2009,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
add_test(CTestConfig.Dashboard.${cfg} ${CMAKE_CMAKE_COMMAND}
|
||||
-P "${base}/${cfg}-dashboard.cmake" -VV
|
||||
)
|
||||
endmacro()
|
||||
endfunction()
|
||||
|
||||
add_config_tests(Debug)
|
||||
add_config_tests(MinSizeRel)
|
||||
|
@ -2165,15 +2160,12 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
set_tests_properties(CTestTestTimeout PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "TestTimeout *\\.+ *\\*\\*\\*Timeout.*CheckChild *\\.+ *Passed")
|
||||
|
||||
# this test only runs correctly if WORKING_DIRECTORY is honored.
|
||||
if (NOT CMAKE_VERSION VERSION_LESS "2.8.4")
|
||||
add_test(
|
||||
NAME CTestTestRerunFailed
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} --rerun-failed)
|
||||
set_tests_properties(CTestTestRerunFailed PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "1/1 Test #1: TestTimeout" DEPENDS CTestTestTimeout
|
||||
WORKING_DIRECTORY ${CMake_BINARY_DIR}/Tests/CTestTestTimeout)
|
||||
endif ()
|
||||
add_test(
|
||||
NAME CTestTestRerunFailed
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} --rerun-failed)
|
||||
set_tests_properties(CTestTestRerunFailed PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "1/1 Test #1: TestTimeout" DEPENDS CTestTestTimeout
|
||||
WORKING_DIRECTORY ${CMake_BINARY_DIR}/Tests/CTestTestTimeout)
|
||||
|
||||
configure_file(
|
||||
"${CMake_SOURCE_DIR}/Tests/CTestTestZeroTimeout/test.cmake.in"
|
||||
|
@ -2234,20 +2226,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestFdSetSize/testOutput.log"
|
||||
)
|
||||
|
||||
# Use macro, not function so that build can still be driven by CMake 2.4.
|
||||
# After 2.6 is required, this could be a function without the extra 'set'
|
||||
# calls.
|
||||
#
|
||||
macro(add_failed_submit_test name source build in out log regex)
|
||||
# Have variables named source, build and drop_method because the
|
||||
# configure_file call expects those variables to be defined.
|
||||
#
|
||||
set(source "${source}")
|
||||
set(build "${build}")
|
||||
function(add_failed_submit_test name source build in out log regex)
|
||||
configure_file("${in}" "${out}" @ONLY)
|
||||
add_test(${name} ${CMAKE_CTEST_COMMAND} -S "${out}" -V --output-log "${log}")
|
||||
set_tests_properties(${name} PROPERTIES PASS_REGULAR_EXPRESSION "${regex}")
|
||||
endmacro()
|
||||
endfunction()
|
||||
|
||||
set(regex "(Problems when submitting via S*CP")
|
||||
set(regex "${regex}|Error message was: ")
|
||||
|
|
Loading…
Reference in New Issue