75 lines
2.7 KiB
CMake
75 lines
2.7 KiB
CMake
# External dependencies are pulled in via submodules. Lets make sure the user
|
|
# has updated all the submodules
|
|
if ((NOT K4A_TURNED_ON_GIT_SUBMODULES_RECURSE) OR
|
|
(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/azure_c_shared/src/CMakeLists.txt"))
|
|
find_package(Git REQUIRED QUIET)
|
|
if (Git_FOUND)
|
|
get_git_dir(${K4A_SOURCE_DIR} GIT_DIR)
|
|
if (GIT_DIR)
|
|
message(STATUS "Updating git modules...")
|
|
execute_process(
|
|
COMMAND
|
|
${GIT_EXECUTABLE} submodule update --init --recursive
|
|
WORKING_DIRECTORY
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
RESULT_VARIABLE
|
|
GIT_SUBMODULE_UPDATE_RESULT
|
|
OUTPUT_VARIABLE
|
|
GIT_SUBMODULE_UPDATE_OUTPUT
|
|
)
|
|
|
|
if (NOT (${GIT_SUBMODULE_UPDATE_RESULT} EQUAL 0))
|
|
message(FATAL_ERROR "git submodule update failed:
|
|
${GIT_SUBMODULE_UDPATE_OUTPUT}")
|
|
endif()
|
|
|
|
message(STATUS "Setting git config submodules.recurse to true")
|
|
execute_process(
|
|
COMMAND
|
|
${GIT_EXECUTABLE} config submodule.recurse true
|
|
WORKING_DIRECTORY
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
RESULT_VARIABLE
|
|
GIT_CONFIG_SUBMODULE_RESULT
|
|
OUTPUT_VARIABLE
|
|
GIT_CONFIG_SUBMODULE_OUTPUT
|
|
)
|
|
|
|
if (NOT (${GIT_CONFIG_SUBMODULE_RESULT} EQUAL 0))
|
|
message(FATAL_ERROR "git config submodule.recurse true failed:
|
|
${GIT_CONFIG_SUBMODULE_OUTPUT}")
|
|
endif()
|
|
|
|
set(K4A_TURNED_ON_GIT_SUBMODULES_RECURSE TRUE CACHE BOOL "Flag to signify we have turned on git submodule.recurse in this repo")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
# Set default policies for CMP0063 to NEW
|
|
#
|
|
# This forces cmake to apply CMAKE_C_VISIBILITY_PRESET,
|
|
# CMAKE_CXX_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN target properties
|
|
# to all targets, not just SHARED libraries. We want this so that files
|
|
# compiled into static libraries have the same visibility flags as those
|
|
# compiled into shared libraries.
|
|
#
|
|
# NEW is the default for this policy except when cmake_minimum_required is
|
|
# lower than CMake 3.3
|
|
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
|
|
|
|
add_subdirectory(azure_c_shared)
|
|
add_subdirectory(cjson)
|
|
add_subdirectory(glfw)
|
|
add_subdirectory(googletest)
|
|
add_subdirectory(imgui)
|
|
add_subdirectory(libebml)
|
|
add_subdirectory(libjpeg-turbo)
|
|
add_subdirectory(libmatroska)
|
|
add_subdirectory(libsoundio)
|
|
add_subdirectory(libyuv)
|
|
add_subdirectory(libuvc)
|
|
add_subdirectory(spdlog)
|
|
if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "WindowsStore")
|
|
add_subdirectory(libusb)
|
|
endif()
|