diff --git a/scripts/cmake/SubmoduleCheck.sh b/scripts/cmake/SubmoduleCheck.sh deleted file mode 100644 index 726930c4a45ba0e9ebcb97e8dada699145406074..0000000000000000000000000000000000000000 --- 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 5ffb0a1e0141ec722548b879c1ef02ca7e2c52af..c4b9a93f55a174924d3024d2f01a84eda52853eb 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}