/
CMakeLists.txt
104 lines (95 loc) · 2.91 KB
/
CMakeLists.txt
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
set(SOURCE_FILES
main.cpp
k4aaudiochanneldatagraph.cpp
k4aaudiomanager.cpp
k4aaudiowindow.cpp
k4acalibrationtransformdata.cpp
k4acapture.cpp
k4acolorframevisualizer.cpp
k4adevice.cpp
k4adevicedockcontrol.cpp
k4afilepicker.cpp
k4aimguiextensions.cpp
k4aimudatagraph.cpp
k4aimusamplesource.cpp
k4aimuwindow.cpp
k4ainfraredframevisualizer.cpp
k4amicrophone.cpp
k4amicrophonelistener.cpp
k4apointcloudrenderer.cpp
k4apointcloudviewcontrol.cpp
k4apointcloudvisualizer.cpp
k4apointcloudwindow.cpp
k4arecording.cpp
k4arecordingdockcontrol.cpp
k4asourceselectiondockcontrol.cpp
k4atypeoperators.cpp
k4avideowindow.cpp
k4aviewer.cpp
k4aviewererrormanager.cpp
k4aviewersettingsmanager.cpp
k4awindowmanager.cpp
k4awindowset.cpp
opengltexture.cpp
perfcounter.cpp
${CMAKE_CURRENT_BINARY_DIR}/version.rc
)
# Include ${CMAKE_CURRENT_BINARY_DIR}/version.rc in the target's sources
# to embed version information
set(K4A_FILEDESCRIPTION "Azure Kinect Viewer")
set(K4A_ORIGINALFILENAME "k4aviewer.exe")
configure_file(
${K4A_VERSION_RC}
${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY
)
find_package(OpenGL REQUIRED)
find_package(LibUSB REQUIRED)
include_directories(
${OPENGL_INCLUDE_DIRS}
${CMAKE_CURRENT_LIST_DIR}
)
set(EXTERNAL_LIBRARIES
k4a::k4a
k4a::k4arecord
imgui::imgui
libjpeg-turbo::libjpeg-turbo
libsoundio::libsoundio
LibUSB::LibUSB
libyuv::libyuv
glfw::glfw
${OPENGL_LIBRARIES}
)
# On Windows, we need to call into setupapi to get USB container ID information
# so we can correlate K4A microphone arrays and K4A depth cameras/sensors
#
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
list(APPEND SOURCE_FILES
platform/windows/filesystem17.cpp
platform/windows/k4adevicecorrelator.cpp
platform/windows/wmain.cpp
)
list(APPEND EXTERNAL_LIBRARIES
setupapi.lib
pathcch.lib
)
else()
list(APPEND SOURCE_FILES
platform/linux/filesystem17.cpp
platform/linux/k4adevicecorrelator.cpp
)
# This is a bit gross, but libsoundio has a file called endian.h in its
# include path, which conflicts with a system file with the same name on
# Linux. On Ubuntu 16.04, this causes a struct in waitstatus.h to have
# all its members defined twice (once for each endianness), which results
# in a build break. It looks like there's not a built-in way to pass
# idirafter in cmake like you can with target_include_directories, so
# anyone that uses libsoundio has to do this. Fortunately, that should
# just be k4aviewer
#
add_compile_options("-idirafter/usr/include/soundio")
endif()
add_executable(k4aviewer WIN32 ${SOURCE_FILES})
target_link_libraries(k4aviewer PRIVATE ${EXTERNAL_LIBRARIES})