summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-10-10 22:02:24 (GMT)
committerBrad King <brad.king@kitware.com>2013-10-15 13:22:56 (GMT)
commit920ffbf50fa08e9a8bc4cdef5fd58ab7a6c6130c (patch)
tree84c092b3dfd4e4089d17790425e266f5b630ff8f
parent872db622d62012d6ea0c2142d75f9a0b97949004 (diff)
downloadCMake-920ffbf50fa08e9a8bc4cdef5fd58ab7a6c6130c.zip
CMake-920ffbf50fa08e9a8bc4cdef5fd58ab7a6c6130c.tar.gz
CMake-920ffbf50fa08e9a8bc4cdef5fd58ab7a6c6130c.tar.bz2
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.
-rw-r--r--CMakeLists.txt20
-rw-r--r--Tests/CMakeLib/CMakeLists.txt2
-rw-r--r--Tests/CMakeLists.txt37
3 files changed, 15 insertions, 44 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b64b6a9..5f3bc66 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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()
diff --git a/Tests/CMakeLib/CMakeLists.txt b/Tests/CMakeLib/CMakeLists.txt
index a831e30..070c9cc 100644
--- a/Tests/CMakeLib/CMakeLists.txt
+++ b/Tests/CMakeLib/CMakeLists.txt
@@ -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
)
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index f7b98da..0e0455c 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -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: ")