From f7b7cbb98587fe4ffcb5d0a4b44f5a06dadb28f4 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Wed, 30 Mar 2016 12:02:09 +0200 Subject: [PATCH] [CMake] Fixed submodule init / update on Windows. --- scripts/cmake/SubmoduleCheck.sh | 14 -------------- scripts/cmake/SubmoduleSetup.cmake | 21 +++++++++------------ 2 files changed, 9 insertions(+), 26 deletions(-) delete mode 100644 scripts/cmake/SubmoduleCheck.sh diff --git a/scripts/cmake/SubmoduleCheck.sh b/scripts/cmake/SubmoduleCheck.sh deleted file mode 100644 index 726930c4a45..00000000000 --- a/scripts/cmake/SubmoduleCheck.sh +++ /dev/null @@ -1,14 +0,0 @@ -# Checks for unitialized git submodules -# Parameter 1: The path to the submodule -# Returns 0 if the module is already initialized -# Returns 1 if there is no such submodule -# Returns 2 if the checked out submodule is out of date - -# Check for modified -result=$(git submodule status $1 | grep '^+' | wc -l); -if [[ result -eq 0 ]]; then - result=$(git submodule status $1 | grep '^-' | wc -l); - exit $result; -else - exit 2; -fi diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake index 5ffb0a1e014..c4b9a93f55a 100644 --- a/scripts/cmake/SubmoduleSetup.cmake +++ b/scripts/cmake/SubmoduleSetup.cmake @@ -17,24 +17,21 @@ if(OGS_BUILD_TESTS) endif() foreach(SUBMODULE ${REQUIRED_SUBMODULES}) - if(WIN32) - set(SUBMODULE_STATE 1) - else() - # Check if submodule is already initialized - execute_process( - COMMAND ${BASH_TOOL_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/SubmoduleCheck.sh ${SUBMODULE} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE SUBMODULE_STATE - ) - endif() + execute_process( + COMMAND ${GIT_TOOL_PATH} submodule status ${SUBMODULE} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE SUBMODULE_STATE + ) + string(REGEX MATCH "^\\-" UNINITIALIZED ${SUBMODULE_STATE}) + string(REGEX MATCH "^\\+" MISMATCH ${SUBMODULE_STATE}) - if(SUBMODULE_STATE EQUAL 1) + if(UNINITIALIZED) message(STATUS "Initializing submodule ${SUBMODULE}") execute_process( COMMAND ${GIT_TOOL_PATH} submodule update --init ${SUBMODULE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) - elseif(SUBMODULE_STATE EQUAL 2) + elseif(MISMATCH) message(STATUS "Updating submodule ${SUBMODULE}") execute_process( COMMAND git submodule update ${SUBMODULE} -- GitLab