cmake_minimum_required(VERSION 3.26)
project(RetunedDekoProbe LANGUAGES CXX)
if(NOT CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
    message(FATAL_ERROR "Use the private devkitPro Switch toolchain")
endif()
set(CMAKE_CXX_STANDARD 20)
find_library(DEKO_LIBRARY deko3dd HINTS "${DEVKITPRO}/libnx/lib" REQUIRED)
add_executable(retuned_deko_probe probe.cpp)
target_include_directories(retuned_deko_probe PRIVATE "${RETUNED_PROBE_FIXTURES}" "${DEVKITPRO}/libnx/include")
target_compile_options(retuned_deko_probe PRIVATE -O2 -g)
target_link_libraries(retuned_deko_probe PRIVATE ${DEKO_LIBRARY})
nx_generate_nacp(retuned_deko_probe.nacp NAME "Ocarina ReTuned deko3d probe" AUTHOR "OTPR26" VERSION "0.1.0")
nx_create_nro(retuned_deko_probe NACP retuned_deko_probe.nacp)

set(RETUNED_PROBE_PIXEL_EXTENT 256 CACHE STRING "Color readback probe raster extent")
if(RETUNED_PROBE_PIXEL_EXTENT LESS 1 OR RETUNED_PROBE_PIXEL_EXTENT GREATER 256)
    message(FATAL_ERROR "Probe extent must be between 1 and 256")
endif()
target_compile_definitions(retuned_deko_probe PRIVATE RETUNED_PROBE_PIXEL_EXTENT=${RETUNED_PROBE_PIXEL_EXTENT})
