summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProject
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2009-06-26 13:55:35 (GMT)
committerDavid Cole <david.cole@kitware.com>2009-06-26 13:55:35 (GMT)
commitf23668a919400d5b87fd386a64f10ba706e9548f (patch)
tree6ba15f960d6d92ee65fb2e112b5283d12d58fa78 /Tests/ExternalProject
parent8747e109a6d3fdf26190cf05569b96b3bcc5372c (diff)
downloadCMake-f23668a919400d5b87fd386a64f10ba706e9548f.zip
CMake-f23668a919400d5b87fd386a64f10ba706e9548f.tar.gz
CMake-f23668a919400d5b87fd386a64f10ba706e9548f.tar.bz2
ENH: Revise the ExternalProject test to use local CVS and SVN repositories to avoid network activity. Also: stop building KWStyle and kwsys as part of this test to reduce the amount of time spent running the test. Instead, build TutorialStep1 as retrieved from the new local repositories with various tags, date stamps and revision numbers.
Diffstat (limited to 'Tests/ExternalProject')
-rw-r--r--Tests/ExternalProject/CMakeLists.txt213
1 files changed, 87 insertions, 126 deletions
diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt
index 7d857a3..ca31f14 100644
--- a/Tests/ExternalProject/CMakeLists.txt
+++ b/Tests/ExternalProject/CMakeLists.txt
@@ -3,25 +3,13 @@ project(ExternalProjectTest NONE)
include(ExternalProject)
+find_package(CVS)
+find_package(Subversion)
+
set(base "${CMAKE_BINARY_DIR}/CMakeExternals")
set(binary_base "${base}/Build")
set_property(DIRECTORY PROPERTY EP_BASE ${base})
-# Use a "TryCheckout" technique on small subtrees of certain projects
-# to see if cvs checkout and svn checkout may be used on this machine
-# without problems. If so, we can test the projects that use those
-# download techniques. If not, we skip them on this machine...
-#
-include("${CMAKE_CURRENT_SOURCE_DIR}/TryCheckout.cmake")
-
-if(NOT DEFINED can_build_kwstyle)
- if(WATCOM)
- set(can_build_kwstyle 0)
- else()
- set(can_build_kwstyle 1)
- endif()
-endif()
-
if(NOT DEFINED can_build_tutorial_step5)
set(can_build_tutorial_step5 1)
@@ -38,29 +26,7 @@ if(NOT DEFINED can_build_tutorial_step5)
endif()
endif()
-if(NOT DEFINED can_use_cvs)
- try_cvs_checkout(
- ":pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake"
- "CMake/Tests/Tutorial/Step1"
- "${CMAKE_CURRENT_BINARY_DIR}/TryCheckout/TutorialStep1"
- can_use_cvs
- )
- set(can_use_cvs ${can_use_cvs} CACHE STRING "Was try_cvs_checkout successful?")
-endif()
-
-if(NOT DEFINED can_use_svn)
- try_svn_checkout(
- "http://gdcm.svn.sourceforge.net/svnroot/gdcm/trunk/Utilities/gdcmmd5"
- "${CMAKE_CURRENT_BINARY_DIR}/TryCheckout/gdcmmd5"
- can_use_svn
- )
- set(can_use_svn ${can_use_svn} CACHE STRING "Was try_svn_checkout successful?")
-endif()
-
-message(STATUS "can_build_kwstyle='${can_build_kwstyle}'")
message(STATUS "can_build_tutorial_step5='${can_build_tutorial_step5}'")
-message(STATUS "can_use_cvs='${can_use_cvs}'")
-message(STATUS "can_use_svn='${can_use_svn}'")
# Empty projects that test all the known ep_add argument key words:
@@ -92,6 +58,32 @@ ep_add(${proj}
)
+# Unzip/untar the repositories in our source folder so that other
+# projects below may use them to test the various source control
+# systems
+#
+set(proj SetupLocalCVSRepository)
+set(local_cvs_repo "${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/CVS")
+ep_add(${proj}
+ SOURCE_DIR ${local_cvs_repo}
+ URL ${CMAKE_CURRENT_SOURCE_DIR}/cvsrepo.tgz
+ BUILD_COMMAND ""
+ CONFIGURE_COMMAND ""
+ INSTALL_COMMAND ""
+)
+
+set(proj SetupLocalSVNRepository)
+set(local_svn_repo "${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/SVN")
+set(local_svn_repo_url "file:///${local_svn_repo}/TutorialStep1")
+ep_add(${proj}
+ SOURCE_DIR ${local_svn_repo}
+ URL ${CMAKE_CURRENT_SOURCE_DIR}/svnrepo.tgz
+ BUILD_COMMAND ""
+ CONFIGURE_COMMAND ""
+ INSTALL_COMMAND ""
+)
+
+
# Local DIR:
#
if(can_build_tutorial_step5)
@@ -153,101 +145,90 @@ ep_add(${proj}
)
-# Download TAR:
-#
-# TODO: Add a remote .tar file
-
-
-# Download TGZ:
-#
-# TODO: Add a remote .tgz file
-
-
-# Download CVS:
-#
-if(can_use_cvs)
+if(CVS_EXECUTABLE)
# CVS by date stamp:
#
- set(proj TutorialStep1-20081201)
+ set(proj TutorialStep1-CVS-20090625)
ep_add(${proj}
- CVS_REPOSITORY ":pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake"
- CVS_MODULE "CMake/Tests/Tutorial/Step1"
- CVS_TAG "-D2008-12-01 01:00:00 UTC"
+ CVS_REPOSITORY "${local_cvs_repo}"
+ CVS_MODULE "TutorialStep1"
+ CVS_TAG "-D2009-06-25 16:00:00 UTC"
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ UPDATE_COMMAND ""
INSTALL_COMMAND ""
+ DEPENDS "SetupLocalCVSRepository"
)
# CVS by tag:
#
- set(proj kwsys-from-CMake-2-6-2)
+ set(proj TutorialStep1-CVS-testtag1)
ep_add(${proj}
- CVS_REPOSITORY ":pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake"
- CVS_MODULE "CMake/Source/kwsys"
- CVS_TAG -rCMake-2-6-2
+ CVS_REPOSITORY "${local_cvs_repo}"
+ CVS_MODULE "TutorialStep1"
+ CVS_TAG -rtesttag1
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ UPDATE_COMMAND ""
INSTALL_COMMAND ""
+ DEPENDS "SetupLocalCVSRepository"
)
- if(can_build_kwstyle)
- # Live CVS / HEAD (no CVS_TAG):
- #
- set(proj KWStyle-CVSHEAD)
- ep_add(${proj}
- CVS_REPOSITORY ":pserver:anoncvs@public.kitware.com:/cvsroot/KWStyle"
- CVS_MODULE "KWStyle"
- CMAKE_GENERATOR "${CMAKE_GENERATOR}"
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
- DEPENDS "EmptyNoOpProject"
- DEPENDS "TutorialStep1-LocalTAR"
- DEPENDS "TutorialStep1-LocalNoDirTAR"
- DEPENDS "TutorialStep1-LocalTGZ"
- DEPENDS "TutorialStep1-LocalNoDirTGZ"
- DEPENDS "TutorialStep1-20081201"
- DEPENDS "kwsys-from-CMake-2-6-2"
- )
- ep_get(${proj} source_dir install_dir)
- set(kwstyle_source_dir ${source_dir})
- set(kwstyle_install_dir ${install_dir})
- endif()
+ # Live CVS / HEAD (no CVS_TAG):
+ #
+ set(proj TutorialStep1-CVS-HEAD)
+ ep_add(${proj}
+ CVS_REPOSITORY "${local_cvs_repo}"
+ CVS_MODULE "TutorialStep1"
+ CMAKE_GENERATOR "${CMAKE_GENERATOR}"
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ INSTALL_COMMAND ""
+ DEPENDS "SetupLocalCVSRepository"
+ DEPENDS "EmptyNoOpProject"
+ DEPENDS "TutorialStep1-LocalTAR"
+ DEPENDS "TutorialStep1-LocalNoDirTAR"
+ DEPENDS "TutorialStep1-LocalTGZ"
+ DEPENDS "TutorialStep1-LocalNoDirTGZ"
+ DEPENDS "TutorialStep1-CVS-20090625"
+ DEPENDS "TutorialStep1-CVS-testtag1"
+ )
endif()
-# Download SVN:
-#
-if(can_use_svn)
+if(Subversion_SVN_EXECUTABLE)
# SVN by date stamp:
#
- set(proj gdcm-md5-20081204)
+ set(proj TutorialStep1-SVN-20090625)
ep_add(${proj}
- SVN_REPOSITORY "http://gdcm.svn.sourceforge.net/svnroot/gdcm/trunk/Utilities/gdcmmd5"
- SVN_TAG "-r{2008-12-04 01:00:00 +0000}"
+ SVN_REPOSITORY "${local_svn_repo_url}"
+ SVN_TAG "-r{2009-06-25 16:00:00 +0000}"
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ INSTALL_COMMAND ""
+ DEPENDS "SetupLocalSVNRepository"
)
- ep_get(${proj} install_dir)
- set(gdcm_install_dir ${install_dir})
# SVN by revision number:
#
- set(proj gdcm-md5-r4824)
+ set(proj TutorialStep1-SVN-r2)
ep_add(${proj}
- SVN_REPOSITORY "http://gdcm.svn.sourceforge.net/svnroot/gdcm/trunk/Utilities/gdcmmd5"
- SVN_TAG "-r4824"
+ SVN_REPOSITORY "${local_svn_repo_url}"
+ SVN_TAG "-r2"
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
INSTALL_COMMAND ""
+ DEPENDS "SetupLocalSVNRepository"
)
# Live SVN / trunk (no SVN_TAG):
#
- set(proj gdcm-md5-SVNtrunk)
+ set(proj TutorialStep1-SVN-trunk)
ep_add(${proj}
- SVN_REPOSITORY "http://gdcm.svn.sourceforge.net/svnroot/gdcm/trunk/Utilities/gdcmmd5"
+ SVN_REPOSITORY "${local_svn_repo_url}"
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
INSTALL_COMMAND ""
+ DEPENDS "SetupLocalSVNRepository"
)
endif()
@@ -257,12 +238,6 @@ endif()
enable_testing()
-# Use these as input to the KWStyle tests:
-#
-set(kwstyleXmlFile "${kwstyle_source_dir}/Testing/Data/0001-KWStyleConfiguration.kws.xml")
-set(header "${TutorialStep5_install_dir}/include/TutorialConfig.h")
-
-
# Do at least a smoke test of a built executable from each
# project's build directory...
#
@@ -285,28 +260,26 @@ add_test(TutorialStep1-LocalTGZ-BuildTreeTest
add_test(TutorialStep1-LocalNoDirTGZ-BuildTreeTest
"${binary_base}/TutorialStep1-LocalNoDirTGZ/Tutorial" 9)
-if(can_use_cvs)
- add_test(TutorialStep1-20081201-BuildTreeTest
- "${binary_base}/TutorialStep1-20081201/Tutorial" 4)
+if(CVS_EXECUTABLE)
+ add_test(TutorialStep1-CVS-20090625-BuildTreeTest
+ "${binary_base}/TutorialStep1-CVS-20090625/Tutorial" 4)
- add_test(kwsys-from-CMake-2-6-2-BuildTreeTest
- "${binary_base}/kwsys-from-CMake-2-6-2/kwsysTestProcess" 1)
+ add_test(TutorialStep1-CVS-testtag1-BuildTreeTest
+ "${binary_base}/TutorialStep1-CVS-testtag1/Tutorial" 64)
- if(can_build_kwstyle)
- add_test(KWStyle-CVSHEAD-BuildTreeTest
- "${binary_base}/KWStyle-CVSHEAD/KWStyle" -xml "${kwstyleXmlFile}" "${header}")
- endif()
+ add_test(TutorialStep1-CVS-HEAD-BuildTreeTest
+ "${binary_base}/TutorialStep1-CVS-HEAD/Tutorial" 81)
endif()
-if(can_use_svn)
- add_test(gdcm-md5-20081204-BuildTreeTest
- "${binary_base}/gdcm-md5-20081204/md5main" --version)
+if(Subversion_SVN_EXECUTABLE)
+ add_test(TutorialStep1-SVN-20090625-BuildTreeTest
+ "${binary_base}/TutorialStep1-SVN-20090625/Tutorial" 100)
- add_test(gdcm-md5-r4824-BuildTreeTest
- "${binary_base}/gdcm-md5-r4824/md5main" --version)
+ add_test(TutorialStep1-SVN-r2-BuildTreeTest
+ "${binary_base}/TutorialStep1-SVN-r2/Tutorial" 99)
- add_test(gdcm-md5-SVNtrunk-BuildTreeTest
- "${binary_base}/gdcm-md5-SVNtrunk/md5main" --version)
+ add_test(TutorialStep1-SVN-trunk-BuildTreeTest
+ "${binary_base}/TutorialStep1-SVN-trunk/Tutorial" 98)
endif()
@@ -316,15 +289,3 @@ if(can_build_tutorial_step5)
add_test(TutorialStep5-InstallTreeTest
"${TutorialStep5_install_dir}/bin/Tutorial" 49)
endif()
-
-if(can_use_cvs)
- if(can_build_kwstyle)
- add_test(KWStyle-InstallTreeTest
- "${kwstyle_install_dir}/bin/KWStyle" -xml "${kwstyleXmlFile}" "${header}")
- endif()
-endif()
-
-if(can_use_svn)
- add_test(gdcm-md5-InstallTreeTest
- "${gdcm_install_dir}/bin/md5main" --version)
-endif()