diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake index 5dbf45035c16a6d655a6cdb3353f6a9c9feb98f9..9d753a147080afe483c84c96809e0b4da7cf78f1 100644 --- a/scripts/cmake/SubmoduleSetup.cmake +++ b/scripts/cmake/SubmoduleSetup.cmake @@ -42,6 +42,7 @@ foreach(SUBMODULE ${REQUIRED_SUBMODULES}) string(REGEX MATCH "^\\-" UNINITIALIZED ${SUBMODULE_STATE}) string(REGEX MATCH "^\\+" MISMATCH ${SUBMODULE_STATE}) + set(RESULT "") if(UNINITIALIZED) message(STATUS "Initializing submodule ${SUBMODULE}") if(${SUBMODULE} STREQUAL "Tests/Data") @@ -50,6 +51,7 @@ foreach(SUBMODULE ${REQUIRED_SUBMODULES}) execute_process( COMMAND ${GIT_TOOL_PATH} submodule update --init --recursive ${DEPTH} ${SUBMODULE} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE RESULT ) elseif(MISMATCH) @@ -57,6 +59,11 @@ foreach(SUBMODULE ${REQUIRED_SUBMODULES}) execute_process( COMMAND ${GIT_TOOL_PATH} submodule update --recursive ${SUBMODULE} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE RESULT ) endif() + + if((NOT ${RESULT} STREQUAL "") AND (NOT ${RESULT} STREQUAL "0")) + message(FATAL_ERROR "Error in submodule setup; return value: ${RESULT}") + endif() endforeach()