diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake index a07dbb57ab1c8ee4c946f65b8a03fb3cc0c2e5a5..280ef5aab8f61b372e9a9277b4117de180bb4637 100644 --- a/scripts/cmake/SubmoduleSetup.cmake +++ b/scripts/cmake/SubmoduleSetup.cmake @@ -40,22 +40,34 @@ 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(IS_CI) + # Always set submodule to the given state execute_process( - COMMAND ${GIT_TOOL_PATH} submodule update --init --recursive ${DEPTH} ${SUBMODULE} + COMMAND ${GIT_TOOL_PATH} submodule update --init --force + --recursive ${DEPTH} ${SUBMODULE} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} RESULT_VARIABLE RESULT ) + else() + set(RESULT "") + if(UNINITIALIZED) + message(STATUS "Initializing submodule ${SUBMODULE}") + execute_process( + COMMAND ${GIT_TOOL_PATH} submodule update --init + --recursive ${DEPTH} ${SUBMODULE} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE RESULT + ) - elseif(MISMATCH) - message(STATUS "Updating submodule ${SUBMODULE}") - execute_process( - COMMAND ${GIT_TOOL_PATH} submodule update --recursive ${SUBMODULE} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - RESULT_VARIABLE RESULT - ) + elseif(MISMATCH) + message(STATUS "Updating submodule ${SUBMODULE}") + execute_process( + COMMAND ${GIT_TOOL_PATH} submodule update + --recursive ${SUBMODULE} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE RESULT + ) + endif() endif() if((NOT ${RESULT} STREQUAL "") AND (NOT ${RESULT} STREQUAL "0"))