Skip to content
Snippets Groups Projects
Commit b6dd6ed9 authored by Lars Bilke's avatar Lars Bilke
Browse files

[CMake] Add --force to git submodule update when on CI.

This cleans dirty states in submodules which may happen when a
non-existing submodule hash was referenced.

Makes sure to always have the submodule at the desired state.
parent a520ecc0
No related branches found
No related tags found
No related merge requests found
......@@ -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"))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment