Add a "Contract" test for VTK. The test downloads and builds VTK.
The idea is that we can make sure that CMake is staying backwards compatible by testing projects against CMake as the changes are made in CMake. Because these tests will take a long time to run, they will not be enabled by default. Instead, they will be enabled by putting a cache variable into CMake.
This commit is contained in:
parent
775697d5f5
commit
fd343a1a36
|
@ -11,7 +11,7 @@ MACRO(ADD_TEST_MACRO NAME COMMAND)
|
|||
--build-generator ${CMAKE_TEST_GENERATOR}
|
||||
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
|
||||
--build-project ${proj}
|
||||
--test-command ${COMMAND})
|
||||
--test-command ${COMMAND} ${ARGN})
|
||||
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
|
||||
ENDMACRO(ADD_TEST_MACRO)
|
||||
|
||||
|
@ -1757,6 +1757,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
-D source_dir:STRING=${CMAKE_CURRENT_SOURCE_DIR}/Tutorial/Step3
|
||||
-D CMAKE_CTEST_COMMAND:STRING=${CMAKE_CTEST_COMMAND}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeWizardTest.cmake)
|
||||
# If the cache variable CMAKE_CONTRACT_PROJECTS is set
|
||||
# then the dashboard will run a contract with CMake test of that
|
||||
# name. For example CMAKE_CONTRACT_PROJECTS = vtk542 would run
|
||||
# the vtk542 contract test.
|
||||
FOREACH(project ${CMAKE_CONTRACT_PROJECTS})
|
||||
ADD_TEST_MACRO(Contracts.${project}
|
||||
VTK-build/bin/CommonCxxTests otherArrays)
|
||||
SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT 5400)
|
||||
ENDFOREACH()
|
||||
ENDIF(BUILD_TESTING)
|
||||
|
||||
SUBDIRS(CMakeTests)
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
# The VTK external project for CMake
|
||||
# ---------------------------------------------------------------------------
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
project(vtk542)
|
||||
include(ExternalProject)
|
||||
|
||||
|
||||
set(vtk_source "${CMAKE_CURRENT_BINARY_DIR}/VTK-source")
|
||||
set(vtk_binary "${CMAKE_CURRENT_BINARY_DIR}/VTK-build")
|
||||
|
||||
ExternalProject_Add(VTK
|
||||
DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}
|
||||
URL "http://www.vtk.org/files/release/5.4/vtk-5.4.2.tar.gz"
|
||||
URL_MD5 c2c797091d4b2128d9a1bd32c4b78227
|
||||
SOURCE_DIR ${vtk_source}
|
||||
BINARY_DIR ${vtk_binary}
|
||||
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
|
||||
CMAKE_ARGS
|
||||
-DBUILD_EXAMPLES:BOOL=ON
|
||||
-DBUILD_TESTING:BOOL=ON
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
# make it so that each build will run make in the VTK build tree
|
||||
ExternalProject_Add_Step(VTK forcebuild
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E remove ${CMAKE_CURRENT_BUILD_DIR}/VTK-prefix/src/VTK-stamp/VTK-build
|
||||
DEPENDEES configure
|
||||
DEPENDERS build
|
||||
ALWAYS 1
|
||||
)
|
Loading…
Reference in New Issue