diff --git a/CMakeLists.txt b/CMakeLists.txt index fd49d63f6a15b10ed518075143a5e43338b721e4..e7f54da32579b30f00c886bf83321e746c414a27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ INCLUDE(scripts/cmake/FindIncludeHeader.cmake) INCLUDE(scripts/cmake/Functions.cmake) INCLUDE(scripts/cmake/CMakeSetup.cmake) INCLUDE(scripts/cmake/CompilerSetup.cmake) +INCLUDE(scripts/cmake/SubmoduleSetup.cmake) IF(NOT OGS_NO_EXTERNAL_LIBS) INCLUDE(scripts/cmake/Find.cmake) ENDIF() # NOT OGS_NO_EXTERNAL_LIBS diff --git a/GeoLib/CMakeLists.txt b/GeoLib/CMakeLists.txt index 928424bb772476e11c952619d34093ae614e8cc1..d0b60e6785a6f590960b632032f61431327a7dd6 100644 --- a/GeoLib/CMakeLists.txt +++ b/GeoLib/CMakeLists.txt @@ -7,8 +7,8 @@ ADD_LIBRARY(GeoLib STATIC ${SOURCES_GeoLib}) include_directories( . - ../BaseLib - ../MathLib + ${CMAKE_SOURCE_DIR}/BaseLib + ${CMAKE_SOURCE_DIR}/MathLib ) diff --git a/scripts/cmake/SubmoduleCheck.sh b/scripts/cmake/SubmoduleCheck.sh new file mode 100755 index 0000000000000000000000000000000000000000..85d61dfcf33c960efc3eabf461897374912532de --- /dev/null +++ b/scripts/cmake/SubmoduleCheck.sh @@ -0,0 +1,5 @@ +# Checks for unitialized git submodules +# Parameter 1: The path to the submodule +# Returns 0 if there is no such submodule +# Returns 1 if the module is already initialized +result=$(git submodule status $1 | grep '^-' | wc -l); exit $result \ No newline at end of file diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9f1e49a9f5aad9c39dc2d4ec4aa9b31881db6fa7 --- /dev/null +++ b/scripts/cmake/SubmoduleSetup.cmake @@ -0,0 +1,23 @@ +# This file initializes the required submodules + +SET(REQUIRED_SUBMODULES + Tests/quickcheck +) + +FOREACH(SUBMODULE ${REQUIRED_SUBMODULES}) + # Check if submodule is already initialized + # MESSAGE(STATUS "Checking module ${SUBMODULE}") + EXECUTE_PROCESS( + COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/cmake/SubmoduleCheck.sh ${SUBMODULE} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + RESULT_VARIABLE SUBMODULE_IS_NOT_INITIALIZED + ) + + IF(SUBMODULE_IS_NOT_INITIALIZED) + MESSAGE(STATUS "Initializing submodule ${SUBMODULE}") + EXECUTE_PROCESS( + COMMAND git submodule update --init ${SUBMODULE} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + ENDIF() +ENDFOREACH() \ No newline at end of file