TryCheckout.cmake 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. find_package(CVS)
  2. find_package(Subversion)
  3. function(try_cvs_checkout repository module dir result_var)
  4. # Assume cvs checkouts will not work:
  5. set(${result_var} 0 PARENT_SCOPE)
  6. if(CVS_EXECUTABLE)
  7. message(STATUS "try_cvs_checkout")
  8. # Ensure directory exists so we can call cvs in it:
  9. file(MAKE_DIRECTORY "${dir}")
  10. # Try to do the cvs checkout command:
  11. execute_process(COMMAND ${CVS_EXECUTABLE} -d ${repository} co ${module}
  12. WORKING_DIRECTORY ${dir}
  13. TIMEOUT 30
  14. RESULT_VARIABLE rv)
  15. # If it worked, cvs checkouts will work:
  16. if(rv EQUAL 0)
  17. set(${result_var} 1 PARENT_SCOPE)
  18. endif()
  19. message(STATUS "try_cvs_checkout -- done")
  20. endif()
  21. endfunction(try_cvs_checkout)
  22. function(try_svn_checkout repository dir result_var)
  23. # Assume svn checkouts will not work:
  24. set(${result_var} 0 PARENT_SCOPE)
  25. if(Subversion_SVN_EXECUTABLE)
  26. message(STATUS "try_svn_checkout")
  27. # Ensure directory exists so we can call svn in it:
  28. file(MAKE_DIRECTORY "${dir}")
  29. # Try to do the svn checkout command:
  30. execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} co ${repository} ${dir}
  31. WORKING_DIRECTORY ${dir}
  32. TIMEOUT 30
  33. RESULT_VARIABLE rv)
  34. # If it worked, svn checkouts will work:
  35. if(rv EQUAL 0)
  36. set(${result_var} 1 PARENT_SCOPE)
  37. endif()
  38. message(STATUS "try_svn_checkout -- done")
  39. endif()
  40. endfunction(try_svn_checkout)