Fix submodule retrieval for old git versions

This commit is contained in:
Federico Ficarelli 2020-01-10 19:06:29 +01:00
parent 9e062053b8
commit 9e42f5452c
1 changed files with 13 additions and 7 deletions

View File

@ -1,9 +1,15 @@
option(QE_ENABLE_VENDOR_DEPS "enable fallback on vendored deps when none is found via find_package()" ON)
if(QE_ENABLE_VENDOR_DEPS)
# Look for git to be able to update submodules:
function(qe_git_submodule_update PATH)
find_package(Git)
endif(QE_ENABLE_VENDOR_DEPS)
# Old versions of git aren't able to run init+update
# in one go (via 'git submodule update --init'), we need
# to call one command for each operation:
execute_process(COMMAND ${GIT_EXECUTABLE} submodule init -- ${PATH}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update -- ${PATH}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
endfunction(qe_git_submodule_update)
###########################################################
# QE::LAPACK
@ -22,7 +28,8 @@ else(LAPACK_FOUND)
message(STATUS "Installing QE::LAPACK via submodule")
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init -- lapack
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lapack EXCLUDE_FROM_ALL)
qe_git_submodule_update(external/lapack)
add_subdirectory(lapack EXCLUDE_FROM_ALL)
add_library(qe_lapack INTERFACE)
add_library(QE::LAPACK ALIAS qe_lapack)
target_link_libraries(qe_lapack INTERFACE lapack)
@ -60,9 +67,8 @@ else(FoX_FOUND)
FoX_sax
FoX_wxml)
set(FoX_ENABLE_EXAMPLES OFF CACHE BOOL "" FORCE)
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init -- fox
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/fox EXCLUDE_FROM_ALL)
qe_git_submodule_update(external/fox)
add_subdirectory(fox EXCLUDE_FROM_ALL)
add_library(qe_fox INTERFACE)
add_library(QE::FOX ALIAS qe_fox)
target_link_libraries(qe_fox INTERFACE ${fox_targets})