CMake : comment exécuter automatiquement git submodule update --init
Lorsque vous utilisez des sous-modules git dans votre projet CMake, vous pouvez vouloir garantir que les sous-modules soient initialisés et mis à jour automatiquement lors de la configuration du projet. Vous pouvez y parvenir en ajoutant une commande personnalisée dans votre fichier CMakeLists.txt.
CMakeLists.txt
# Tenter d'initialiser les sous-modules git automatiquement pendant la configuration
# afin que les utilisateurs en aval n'aient pas besoin d'une étape manuelle séparée.
# Ceci est une tentative au mieux et ne s'exécutera que si Git est disponible.
find_package(Git QUIET)
if(GIT_FOUND)
message(STATUS "Git trouvé : initialisation/mise à jour des sous-modules...")
execute_process(
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE _git_submodule_result
OUTPUT_QUIET ERROR_QUIET
)
if(NOT _git_submodule_result EQUAL 0)
message(WARNING "git submodule update --init --recursive a échoué avec le code de sortie ${_git_submodule_result}")
endif()
else()
message(STATUS "Git introuvable ; initialisation automatique des sous-modules git ignorée")
endif()If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow