diff options
Diffstat (limited to 'primedev/cmake/utils.cmake')
-rw-r--r-- | primedev/cmake/utils.cmake | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/primedev/cmake/utils.cmake b/primedev/cmake/utils.cmake new file mode 100644 index 00000000..d8450551 --- /dev/null +++ b/primedev/cmake/utils.cmake @@ -0,0 +1,25 @@ + +# Check if a dependency exist before trying to init git submodules +function(check_init_submodule path) + file(GLOB DIR_CONTENT "${path}/*") + list(LENGTH DIR_CONTENT CONTENT_COUNT) + if (CONTENT_COUNT EQUAL 0) + if (NOT EXISTS "${PROJECT_SOURCE_DIR}/.git") + message(FATAL_ERROR "Failed to find third party dependency in '${path}'") + endif() + + find_package(Git QUIET) + if (NOT Git_FOUND) + message(FATAL_ERROR "Failed to find Git, third party dependency could not be setup at `${path}") + endif() + + message(STATUS "Setting up dependencies as git submodules") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "Initializing Git submodules failed with ${GIT_SUBMOD_RESULT}") + endif() + endif() +endfunction() |