| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- function(ctkFunctionCheckoutRepo)
 
-   ctkMacroParseArguments("" "NAME;GIT_URL;GIT_TAG;GIT_PROTOCOL;CHECKOUT_DIR" "" ${ARGN})
 
-   if(${_NAME}_DIR)
 
-     # if a *_DIR variable is supplied, the repository is not cloned.
 
-     return()
 
-   endif()
 
-   foreach(_required_arg NAME GIT_URL)
 
-     if(NOT _${_required_arg})
 
-       message(FATAL_ERROR "${_required_arg} is empty")
 
-     endif()
 
-   endforeach()
 
-   
 
-   if(NOT _GIT_PROTOCOL)
 
-     set(_GIT_PROTOCOL ${git_protocol})
 
-   endif()
 
-   if(NOT _CHECKOUT_DIR)
 
-     set(_CHECKOUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
 
-   endif()
 
-   if(NOT IS_ABSOLUTE "${_CHECKOUT_DIR}")
 
-     message(FATAL_ERROR "The value of the CHECKOUT_DIR argument must be an absolute path.")
 
-   endif()
 
-   
 
-   if(NOT _GIT_TAG)
 
-     set(_GIT_TAG origin/master)
 
-   endif()
 
-   
 
-   set(_repo_build_dir ${CMAKE_CURRENT_BINARY_DIR}/${_NAME}-proj)
 
-   configure_file(${CTK_CMAKE_DIR}/ctkCheckoutRepo.cmake.in
 
-                  ${_repo_build_dir}/CMakeLists.txt)
 
-   execute_process(
 
-     COMMAND ${CMAKE_COMMAND} .
 
-     WORKING_DIRECTORY ${_repo_build_dir}
 
-     RESULT_VARIABLE _result_code
 
-     ERROR_VARIABLE _err_msg
 
-     )
 
-   if(_result_code)
 
-     message(FATAL_ERROR "Configuring directory ${_repo_build_dir} failed: ${_err_msg}")
 
-   endif()
 
-   
 
-   execute_process(
 
-     COMMAND ${CMAKE_COMMAND} --build ${_repo_build_dir}
 
-     RESULT_VARIABLE _result_code
 
-     ERROR_VARIABLE _err_msg
 
-     )
 
-   if(_result_code)
 
-     message(FATAL_ERROR "Building directory ${_repo_build_dir} failed: ${_err_msg}")
 
-   endif()
 
-   
 
-   set(${_NAME}_DIR ${_CHECKOUT_DIR}/${_NAME} PARENT_SCOPE)
 
- endfunction()
 
 
  |