cmake_minimum_required(VERSION 3.24)
project(scda_renderer_test LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
include(FetchContent)
set(ENABLE_HLSL ON CACHE BOOL "" FORCE)
set(ENABLE_OPT OFF CACHE BOOL "" FORCE)
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "" FORCE)
set(GLSLANG_TESTS OFF CACHE BOOL "" FORCE)
set(GLSLANG_ENABLE_INSTALL OFF CACHE BOOL "" FORCE)
FetchContent_Declare(glslang GIT_REPOSITORY https://github.com/KhronosGroup/glslang.git GIT_TAG 16.0.0 GIT_SHALLOW TRUE)
FetchContent_MakeAvailable(glslang)
if(NOT VULKAN_HEADERS)
    message(FATAL_ERROR "Set VULKAN_HEADERS to the NDK sysroot/usr/include directory")
endif()
add_executable(renderer-test ../renderer-test.cpp ../../../src/gpu/shaders.cpp)
# Do not put the NDK's libc headers on a Windows compiler's include path.
file(COPY "${VULKAN_HEADERS}/vulkan" "${VULKAN_HEADERS}/vk_video" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/headers")
target_include_directories(renderer-test PRIVATE ../../../src "${CMAKE_CURRENT_BINARY_DIR}/headers")
target_compile_definitions(renderer-test PRIVATE ENABLE_HLSL)
if(MSVC)
    target_compile_options(renderer-test PRIVATE /UNDEBUG)
else()
    target_compile_options(renderer-test PRIVATE -UNDEBUG)
endif()
target_link_libraries(renderer-test PRIVATE glslang glslang-default-resource-limits)
enable_testing()
add_test(NAME renderer COMMAND renderer-test)
