diff --git a/deps/external_dependency.cmake b/deps/external_dependency.cmake index 19dd26dc..252cead8 100644 --- a/deps/external_dependency.cmake +++ b/deps/external_dependency.cmake @@ -72,9 +72,18 @@ function(external_dependency) set(src_dir ${bin_dir}_src) if(NOT IS_DIRECTORY ${src_dir}) if(ARG_GIT_TAG) - set(clone_opts --branch ${ARG_GIT_TAG} -c advice.detachedHead=false) + set(clone_opts --branch ${ARG_GIT_TAG} -c advice.detachedHead=false) + endif() + if(NOT GIT_EXECUTABLE) + find_package(Git REQUIRED) + endif() + execute_process(COMMAND ${GIT_EXECUTABLE} clone ${ARG_GIT_REPO} --depth 1 ${clone_opts} ${src_dir} + RESULT_VARIABLE clone_failed + ERROR_VARIABLE clone_error + ) + if(clone_failed) + message(FATAL_ERROR "Failed to clone sources for dependency ${ARGV0}.\n ${clone_error}") endif() - execute_process(COMMAND git clone ${ARG_GIT_REPO} --depth 1 ${clone_opts} ${src_dir}) endif() add_subdirectory(${src_dir} ${bin_dir} ${subdir_opts}) else()