diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b05feca2d3f479a498cb781013d94669c318a5e..c32420c3ea0de76dd5f358d5925cafdc2d19a4aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,16 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") # Update submodules as needed option(GIT_SUBMODULE "Check submodules during build" ON) if(GIT_SUBMODULE) - message(STATUS "Submodule update") + execute_process( + COMMAND ${GIT_EXECUTABLE} submodule sync --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_SYNC_RESULT) + if(NOT GIT_SUBMOD_SYNC_RESULT EQUAL "0") + message( + FATAL_ERROR + "git submodule sync failed with ${GIT_SUBMOD_SYNC_RESULT}, please checkout submodules" + ) + endif() execute_process( COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --checkout WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}