From 5dbd12f165e05972dfc594e1d8379299fb5b2703 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Wed, 9 Sep 2020 15:51:00 -0400 Subject: [PATCH] [cmake] Use FindGit.cmake in external_dependency.cmake, Improve error message on clone failure --- deps/external_dependency.cmake | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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()