42 lines
1.5 KiB
CMake
42 lines
1.5 KiB
CMake
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
# Licensed under the MIT License.
|
||
|
|
||
|
cmake_minimum_required(VERSION 3.9.0)
|
||
|
|
||
|
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
|
||
|
|
||
|
project(Azure-Kinect-Samples LANGUAGES C CXX
|
||
|
VERSION 1.4)
|
||
|
|
||
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
set(CMAKE_C_STANDARD 99)
|
||
|
|
||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||
|
|
||
|
FIND_PACKAGE(k4a REQUIRED)
|
||
|
FIND_PACKAGE(k4abt REQUIRED)
|
||
|
|
||
|
# These specific settings tell the loader to search the directory of the
|
||
|
# executable for shared objects. This is done on Linux to emulate the default
|
||
|
# behavior of the Windows loader, which searches for DLLs in the path of the
|
||
|
# executable.
|
||
|
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||
|
set(CMAKE_BUILD_RPATH "\$ORIGIN")
|
||
|
endif()
|
||
|
|
||
|
# If using clang or GCC, set default visibilty to hidden
|
||
|
if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
||
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||
|
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||
|
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
|
||
|
endif()
|
||
|
|
||
|
# If using clang or GCC only linked shared libraries if needed
|
||
|
if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed,-rpath-link=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--as-needed,-rpath-link=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||
|
endif()
|
||
|
|
||
|
add_subdirectory(body-tracking-samples)
|