3
0
mirror of https://github.com/triqs/dft_tools synced 2024-06-29 16:34:53 +02:00

[cmake] Improve command line output for dependency configuration

This commit is contained in:
Nils Wentzell 2020-04-28 10:51:06 -04:00
parent a619870f92
commit 8c407831c8

View File

@ -5,34 +5,34 @@ function(external_dependency)
# Was dependency already found?
if(${ARGV0}_FOUND)
message(STATUS "Dependency ${ARGV0} was already resolved")
endif()
if(NOT Build_Deps)
find_package(${ARGV0} ${${ARGV0}_VERSION} QUIET)
endif()
if(${ARGV0}_FOUND)
message(STATUS "Found dependency ${ARGV0} with find_package command")
else()
message(STATUS "Building Dependency ${ARGV0} from source.")
if(ARG_EXCLUDE_FROM_ALL)
set(subdir_opts EXCLUDE_FROM_ALL)
if(NOT Build_Deps)
find_package(${ARGV0} ${${ARGV0}_VERSION} QUIET)
endif()
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0})
message(STATUS "Found sources for dependency ${ARGV0} at ${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0}.")
add_subdirectory(${ARGV0} ${subdir_opts})
elseif(ARG_GIT_REPO)
set(bin_dir ${CMAKE_CURRENT_BINARY_DIR}/${ARGV0})
set(src_dir ${bin_dir}_src)
if(NOT IS_DIRECTORY ${src_dir})
if(ARG_TAG)
set(clone_opts --branch ${ARG_TAG} -c advice.detachedHead=false)
endif()
execute_process(COMMAND git clone ${ARG_GIT_REPO} --depth 1 ${clone_opts} ${src_dir})
endif()
add_subdirectory(${src_dir} ${bin_dir} ${subdir_opts})
if(${ARGV0}_FOUND)
message(STATUS "Found dependency ${ARGV0} with find_package command")
else()
message(FATAL_ERROR "Could not find dependency ${ARGV0}")
message(STATUS " =============== Configuring Dependency ${ARGV0} =============== ")
if(ARG_EXCLUDE_FROM_ALL)
set(subdir_opts EXCLUDE_FROM_ALL)
endif()
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0})
message(STATUS "Found sources for dependency ${ARGV0} at ${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0}.")
add_subdirectory(${ARGV0} ${subdir_opts})
elseif(ARG_GIT_REPO)
set(bin_dir ${CMAKE_CURRENT_BINARY_DIR}/${ARGV0})
set(src_dir ${bin_dir}_src)
if(NOT IS_DIRECTORY ${src_dir})
if(ARG_TAG)
set(clone_opts --branch ${ARG_TAG} -c advice.detachedHead=false)
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()
message(FATAL_ERROR "Could not find dependency ${ARGV0}")
endif()
set(${ARGV0}_FOUND TRUE PARENT_SCOPE)
endif()
set(${ARGV0}_FOUND TRUE CACHE BOOL "Was dependency ${ARGV0} found?")
endif()
endfunction()