This repository has been archived by the owner on Nov 16, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
188 lines (159 loc) · 4.15 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
cmake_minimum_required (VERSION 3.5)
project(crazyflie-link-cpp)
# Enable C++17 and warnings
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if (MSVC)
# Avoid min/max macros in Windows.h (pulled in from libusb)
add_definitions(-DNOMINMAX)
# warning level 4
# Ideally we would also treat warnings as errors (/WX), but there are still some warnings to fix
add_compile_options(/W4)
else()
# lots of warnings and all warnings as errors
add_compile_options(-Wall -Wextra -Werror)
endif()
# dependencies
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/tools/build)
find_package(libusb REQUIRED)
set(BITCRAZE_INCLUDE ${CMAKE_SOURCE_DIR}/include/bitcraze)
set(M_R_VULKAN_INCLUDE ${CMAKE_SOURCE_DIR}/include/M-R-VulkaN)
include_directories(
${BITCRAZE_INCLUDE}
${M_R_VULKAN_INCLUDE}
${LIBUSB_INCLUDE_DIR}
)
# C++ library
add_library(crazyflieLinkCpp
src/bitcraze/USBManager.cpp
src/bitcraze/Connection.cpp
src/bitcraze/USBDevice.cpp
src/bitcraze/Crazyradio.cpp
src/bitcraze/CrazyradioThread.cpp
src/bitcraze/CrazyflieUSB.cpp
src/bitcraze/CrazyflieUSBThread.cpp
src/bitcraze/Version.cpp
src/M-R-VulkaN/ConnectionWrapper.cpp
src/M-R-VulkaN/LoggingCrazyflieWrapper.cpp
src/M-R-VulkaN/ConnectionWorker.cpp
src/M-R-VulkaN/Crazyflie.cpp
src/M-R-VulkaN/Toc.cpp
src/M-R-VulkaN/TocWrapper.cpp
src/M-R-VulkaN/debug.cpp
src/M-R-VulkaN/Log.cpp
)
# target_include_directories(libCrazyflieLinkCpp
# PUBLIC
# $<INSTALL_INTERFACE:include/crazyflie_cpp>
# $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/crazyflie_cpp>
# )
# Apple macOS libraries
if (APPLE)
set(CMAKE_EXE_LINKER_FLAGS "-lobjc -framework IOKit -framework CoreFoundation")
set(CMAKE_MODULE_LINKER_FLAGS "-lobjc -framework IOKit -framework CoreFoundation")
endif()
# Link pthread on Linux and Mac only
if (NOT MSVC)
target_link_libraries(crazyflieLinkCpp
PRIVATE
pthread
)
endif()
target_link_libraries(crazyflieLinkCpp
PRIVATE
${LIBUSB_LIBRARY}
)
set_property(TARGET crazyflieLinkCpp PROPERTY POSITION_INDEPENDENT_CODE ON)
# C++ example application
# example_console
add_executable(example_console
examples/bitcraze/console.cpp
)
target_link_libraries(example_console
crazyflieLinkCpp
)
# example_scan
add_executable(example_scan
examples/bitcraze/scan.cpp
)
target_link_libraries(example_scan
crazyflieLinkCpp
)
# example_benchmark
add_executable(example_benchmark
examples/bitcraze/benchmark.cpp
)
target_link_libraries(example_benchmark
crazyflieLinkCpp
)
# example_basicLog
add_executable(example_basicLog
examples/M-R-VulkaN/basicLog.cpp
)
target_link_libraries(example_basicLog
crazyflieLinkCpp
)
# example_basicToc
add_executable(example_basicToc
examples/M-R-VulkaN/basicToc.cpp
)
target_link_libraries(example_basicToc
crazyflieLinkCpp
)
# example_appChannelTest
add_executable(example_appChannelTest
examples/M-R-VulkaN/appChannelTest.cpp
)
target_link_libraries(example_appChannelTest
crazyflieLinkCpp
)
# example_logViaAppChannel
add_executable(example_logViaAppChannel
examples/M-R-VulkaN/logViaAppChannel.cpp
)
target_link_libraries(example_logViaAppChannel
crazyflieLinkCpp
)
# example_connectionWorkerTest
add_executable(example_connectionWorkerTest
examples/M-R-VulkaN/connectionWorkerTest.cpp
)
target_link_libraries(example_connectionWorkerTest
crazyflieLinkCpp
)
# example_resetUsb
add_executable(example_resetUsb
examples/M-R-VulkaN/resetUsb.cpp
)
target_link_libraries(example_resetUsb
crazyflieLinkCpp
)
# example_logConnectionWorker
add_executable(example_logConnectionWorker
examples/M-R-VulkaN/logConnectionWorker.cpp
)
target_link_libraries(example_logConnectionWorker
crazyflieLinkCpp
)
# example_crazyflieLog
add_executable(example_crazyflieLog
examples/M-R-VulkaN/crazyflieLog.cpp
)
target_link_libraries(example_crazyflieLog
crazyflieLinkCpp
)
# example_stressTest
add_executable(example_stressTest
examples/M-R-VulkaN/stressTest.cpp
)
target_link_libraries(example_stressTest
crazyflieLinkCpp
)
# # example_basicParamCSV
# add_executable(example_basicParamCSV
# examples/M-R-VulkaN/basicParamCSV.cpp
# )
# target_link_libraries(example_basicParamCSV
# crazyflieLinkCpp
# )