1+ cmake_minimum_required ( VERSION 3.6 )
2+
3+ # Language
4+ enable_language ( CXX )
5+
6+ # Compiler Settings
7+ set ( CMAKE_CXX_STANDARD 17 ) # require C++17 (or later) for filesystem
8+ set ( CMAKE_CXX_STANDARD_REQUIRED ON )
9+ set ( CMAKE_CXX_EXTENSIONS OFF )
10+
11+ # Compiler Option
12+ set ( FILESYSTEM )
13+ if ( "${CMAKE_CXX_COMPILER_ID } " MATCHES "GNU" )
14+ set ( FILESYSTEM "stdc++fs" )
15+ elseif ( "${CMAKE_CXX_COMPILER_ID } " MATCHES "Clang" )
16+ set ( FILESYSTEM "c++fs" )
17+ endif ()
18+
19+ # Project
20+ project ( k4a_mkv2image LANGUAGES CXX )
21+ add_executable ( k4a_mkv2image version .h util.h kinect.hpp kinect.cpp main.cpp )
22+
23+ # (Option) Build with Static CRT
24+ if (WIN32 )
25+ option ( BUILD_STATIC_CRT "build with static crt" OFF )
26+ if ( BUILD_STATIC_CRT )
27+ set ( CXX_FLAGS
28+ CMAKE_CXX_FLAGS
29+ CMAKE_CXX_FLAGS_DEBUG
30+ CMAKE_CXX_FLAGS_RELEASE
31+ )
32+ foreach ( CXX_FLAG ${CXX_FLAGS} )
33+ string ( REPLACE "/MD" "/MT" ${CXX_FLAG} "${${CXX_FLAG} }" )
34+ endforeach ()
35+ endif ()
36+ endif ()
37+
38+ # (Option) Start-Up Project for Visual Studio
39+ set_property ( DIRECTORY PROPERTY VS_STARTUP_PROJECT "k4a_mkv2image" )
40+
41+ # Find Package
42+ find_package ( OpenCV REQUIRED )
43+ find_package ( k4a REQUIRED )
44+ find_package ( k4arecord REQUIRED )
45+ if (NOT WIN32 )
46+ find_package ( TBB REQUIRED )
47+ endif ()
48+
49+ # Set Package to Project
50+ if ( k4a_FOUND AND k4arecord_FOUND AND OpenCV_FOUND )
51+ target_link_libraries ( k4a_mkv2image k4a::k4a )
52+ target_link_libraries ( k4a_mkv2image k4a::k4arecord )
53+ target_link_libraries ( k4a_mkv2image ${OpenCV_LIBS} )
54+ target_link_libraries ( k4a_mkv2image ${FILESYSTEM} )
55+ endif ()
56+
57+ if ( TBB_FOUND )
58+ target_link_libraries ( k4a_mkv2image TBB::tbb )
59+ endif ()
0 commit comments