[Cmake-commits] [cmake-commits] david.cole committed CMakeLists.txt 1.1 1.2 TryCheckout.cmake NONE 1.1
cmake-commits at cmake.org
cmake-commits at cmake.org
Thu Dec 4 15:30:39 EST 2008
Update of /cvsroot/CMake/CMake/Tests/ExternalProject
In directory public:/mounts/ram/cvs-serv28193/Tests/ExternalProject
Modified Files:
CMakeLists.txt
Added Files:
TryCheckout.cmake
Log Message:
ENH: Use a TryCheckout technique to decide whether or not to attempt building the projects that depend on a cvs or svn download method.
Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/ExternalProject/CMakeLists.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -C 2 -d -r1.1 -r1.2
*** CMakeLists.txt 4 Dec 2008 18:27:48 -0000 1.1
--- CMakeLists.txt 4 Dec 2008 20:30:37 -0000 1.2
***************
*** 10,13 ****
--- 10,37 ----
+ # 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")
+
+ try_cvs_checkout(
+ ":pserver:anonymous:cmake at www.cmake.org:/cvsroot/CMake"
+ "CMake/Tests/Tutorial/Step1"
+ "${CMAKE_CURRENT_BINARY_DIR}/TryCheckout/TutorialStep1"
+ can_use_cvs
+ )
+
+ try_svn_checkout(
+ "http://gdcm.svn.sourceforge.net/svnroot/gdcm/trunk/Utilities/gdcmmd5"
+ "${CMAKE_CURRENT_BINARY_DIR}/TryCheckout/gdcmmd5"
+ can_use_svn
+ )
+
+ message(STATUS "can_use_cvs='${can_use_cvs}'")
+ message(STATUS "can_use_svn='${can_use_svn}'")
+
+
# Local DIR:
#
***************
*** 65,69 ****
# Download CVS:
#
! if(CVS_EXECUTABLE)
# CVS by date stamp:
#
--- 89,93 ----
# Download CVS:
#
! if(can_use_cvs)
# CVS by date stamp:
#
***************
*** 101,105 ****
# Download SVN:
#
! if(Subversion_SVN_EXECUTABLE)
# SVN by date stamp:
#
--- 125,129 ----
# Download SVN:
#
! if(can_use_svn)
# SVN by date stamp:
#
***************
*** 163,167 ****
"${build_dir}/TutorialStep1-LocalNoDirTGZ/Tutorial" 9)
! if(CVS_EXECUTABLE)
add_test(KWStyle-20081201-BuildTreeTest
"${build_dir}/KWStyle-20081201/KWStyle" -xml "${kwstyleXmlFile}" "${header}")
--- 187,191 ----
"${build_dir}/TutorialStep1-LocalNoDirTGZ/Tutorial" 9)
! if(can_use_cvs)
add_test(KWStyle-20081201-BuildTreeTest
"${build_dir}/KWStyle-20081201/KWStyle" -xml "${kwstyleXmlFile}" "${header}")
***************
*** 174,178 ****
endif()
! if(Subversion_SVN_EXECUTABLE)
add_test(gdcm-md5-20081204-BuildTreeTest
"${build_dir}/gdcm-md5-20081204/md5main" --version)
--- 198,202 ----
endif()
! if(can_use_svn)
add_test(gdcm-md5-20081204-BuildTreeTest
"${build_dir}/gdcm-md5-20081204/md5main" --version)
***************
*** 191,200 ****
"${install_dir}/bin/Tutorial" 49)
! if(CVS_EXECUTABLE)
add_test(KWStyle-InstallTreeTest
"${install_dir}/bin/KWStyle" -xml "${kwstyleXmlFile}" "${header}")
endif()
! if(Subversion_SVN_EXECUTABLE)
add_test(gdcm-md5-InstallTreeTest
"${install_dir}/bin/md5main" --version)
--- 215,224 ----
"${install_dir}/bin/Tutorial" 49)
! if(can_use_cvs)
add_test(KWStyle-InstallTreeTest
"${install_dir}/bin/KWStyle" -xml "${kwstyleXmlFile}" "${header}")
endif()
! if(can_use_svn)
add_test(gdcm-md5-InstallTreeTest
"${install_dir}/bin/md5main" --version)
--- NEW FILE: TryCheckout.cmake ---
find_package(CVS)
find_package(Subversion)
function(try_cvs_checkout repository module dir result_var)
# Assume cvs checkouts will not work:
set(${result_var} 0 PARENT_SCOPE)
if(CVS_EXECUTABLE)
message(STATUS "try_cvs_checkout")
# Ensure directory exists so we can call cvs in it:
file(MAKE_DIRECTORY "${dir}")
# Try to do the cvs checkout command:
execute_process(COMMAND ${CVS_EXECUTABLE} -d ${repository} co ${module}
WORKING_DIRECTORY ${dir}
TIMEOUT 30
RESULT_VARIABLE rv)
# If it worked, cvs checkouts will work:
if(rv EQUAL 0)
set(${result_var} 1 PARENT_SCOPE)
endif()
message(STATUS "try_cvs_checkout -- done")
endif()
endfunction(try_cvs_checkout)
function(try_svn_checkout repository dir result_var)
# Assume svn checkouts will not work:
set(${result_var} 0 PARENT_SCOPE)
if(Subversion_SVN_EXECUTABLE)
message(STATUS "try_svn_checkout")
# Ensure directory exists so we can call svn in it:
file(MAKE_DIRECTORY "${dir}")
# Try to do the svn checkout command:
execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} co ${repository} ${dir}
WORKING_DIRECTORY ${dir}
TIMEOUT 30
RESULT_VARIABLE rv)
# If it worked, svn checkouts will work:
if(rv EQUAL 0)
set(${result_var} 1 PARENT_SCOPE)
endif()
message(STATUS "try_svn_checkout -- done")
endif()
endfunction(try_svn_checkout)
More information about the Cmake-commits
mailing list