aboutsummaryrefslogtreecommitdiff
path: root/primedev/cmake/utils.cmake
blob: 80a2288d261f4ae36178ad065f2e84701097b5fe (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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()