cmake_minimum_required(VERSION 3.20)
project(mm3_renderer_fog C)
enable_testing()
get_filename_component(MM3_ROOT "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
set(XBOXRECOMP_DIR "${MM3_ROOT}/tools/xboxrecomp")
include(${MM3_ROOT}/cmake/MM3RenderFog.cmake)
if(WIN32)
    include(${XBOXRECOMP_DIR}/cmake/Nv2aHlsl.cmake)
    add_executable(mm3_renderer_fog test_bindings.c)
    target_include_directories(mm3_renderer_fog PRIVATE ${XBOXRECOMP_DIR}/src ${XBOXRECOMP_DIR}/src/video)
    target_link_libraries(mm3_renderer_fog PRIVATE d3d11 dxgi dxguid d3dcompiler)
    xbr_embed_nv2a_hlsl(mm3_renderer_fog)
    mm3_render_fog_shaders(mm3_renderer_fog D3D11)
    add_test(NAME mm3_renderer_fog COMMAND mm3_renderer_fog normal)
    add_test(NAME mm3_renderer_fog_msaa COMMAND mm3_renderer_fog msaa)
endif()
include(${XBOXRECOMP_DIR}/cmake/Nv2aSdlgpu.cmake)
add_subdirectory(${XBOXRECOMP_DIR}/src/platform ${CMAKE_CURRENT_BINARY_DIR}/platform)
add_executable(mm3_renderer_fog_sdlgpu test_bindings_sdlgpu.c ${XBOXRECOMP_DIR}/src/video/fb_window_sdl.c)
xbr_nv2a_sdlgpu_target(mm3_renderer_fog_sdlgpu)
mm3_render_fog_shaders(mm3_renderer_fog_sdlgpu SDL3_GPU)
target_link_libraries(mm3_renderer_fog_sdlgpu PRIVATE platform)
if(NOT MSVC)
    target_compile_options(mm3_renderer_fog_sdlgpu PRIVATE -fwrapv -fno-strict-aliasing)
endif()
add_test(NAME mm3_renderer_fog_sdlgpu COMMAND mm3_renderer_fog_sdlgpu)
