aboutsummaryrefslogtreecommitdiff
path: root/cmake/utils.cmake
blob: d84505514f3f78ecdc176588e0dc261852edc37d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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()