From f23668a919400d5b87fd386a64f10ba706e9548f Mon Sep 17 00:00:00 2001 From: David Cole Date: Fri, 26 Jun 2009 09:55:35 -0400 Subject: [PATCH] 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. --- Tests/ExternalProject/CMakeLists.txt | 229 +++++++++++---------------- 1 file changed, 95 insertions(+), 134 deletions(-) diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt index 7d857a3ef..ca31f140d 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= + 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= + UPDATE_COMMAND "" + INSTALL_COMMAND "" + DEPENDS "SetupLocalCVSRepository" + ) + + # 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_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" ) - - 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= - 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() 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}" - CMAKE_GENERATOR "${CMAKE_GENERATOR}" - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= - ) - ep_get(${proj} install_dir) - set(gdcm_install_dir ${install_dir}) - - # SVN by revision number: - # - set(proj gdcm-md5-r4824) - 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 "-r{2009-06-25 16:00:00 +0000}" CMAKE_GENERATOR "${CMAKE_GENERATOR}" CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= INSTALL_COMMAND "" + DEPENDS "SetupLocalSVNRepository" + ) + + # SVN by revision number: + # + set(proj TutorialStep1-SVN-r2) + ep_add(${proj} + SVN_REPOSITORY "${local_svn_repo_url}" + SVN_TAG "-r2" + CMAKE_GENERATOR "${CMAKE_GENERATOR}" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= + 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_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()