aboutsummaryrefslogtreecommitdiff
path: root/cmake/utils.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/utils.cmake')
-rw-r--r--cmake/utils.cmake25
1 files changed, 25 insertions, 0 deletions
diff --git a/cmake/utils.cmake b/cmake/utils.cmake
new file mode 100644
index 00000000..e38b9eab
--- /dev/null
+++ b/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 RESULT 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()