cmake_minimum_required(VERSION 3.16)
project(gsplat_kinect LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(WIN32)
  if(NOT DEFINED ENV{KINECTSDK20_DIR})
    message(FATAL_ERROR "Install Microsoft Kinect for Windows SDK 2.0 first (KINECTSDK20_DIR is required).")
  endif()
  add_executable(kinect-native windows.cpp)
  target_include_directories(kinect-native PRIVATE "$ENV{KINECTSDK20_DIR}/inc")
  target_link_directories(kinect-native PRIVATE "$ENV{KINECTSDK20_DIR}/Lib/x64")
  target_link_libraries(kinect-native PRIVATE Kinect20)
else()
  find_package(freenect2 REQUIRED)
  add_executable(kinect-native freenect.cpp)
  target_include_directories(kinect-native PRIVATE ${freenect2_INCLUDE_DIRS})
  target_link_libraries(kinect-native PRIVATE ${freenect2_LIBRARIES})
  add_executable(kinect-diagnostic EXCLUDE_FROM_ALL diagnostic.cpp)
  target_include_directories(kinect-diagnostic PRIVATE ${freenect2_INCLUDE_DIRS})
  target_link_libraries(kinect-diagnostic PRIVATE ${freenect2_LIBRARIES})
endif()
install(TARGETS kinect-native RUNTIME DESTINATION bin)
