# CMakeList.txt ; CMake project for box

cmake_minimum_required(VERSION 3.13)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fsanitize=address")
find_path(TINYGLTF_INCLUDE_DIRS "tiny_gltf.h")

find_package(EnTT REQUIRED CONFIG)

add_executable(scene_render "main.cpp"
	"render_resource_manager.cpp" "render_resource_manager.h"
	"asset_loader.cpp" "asset_loader.h"
	"pipeline_utils.cpp" "pipeline_utils.h"
	"core_components.h"
	"ecs_adapter.h"
	"camera.h"
	"ibl_helpers.cpp" "ibl_helpers.h"
	"light_manager.cpp" "light_manager.h")

add_shader(scene_render "shader/model.frag.glsl")
add_shader(scene_render "shader/model.vert.glsl")
add_shader(scene_render "shader/eqrect_to_cube.cs.hlsl")
add_shader(scene_render "shader/diffuse_irradiance.cs.hlsl")
add_shader(scene_render "shader/prefilter.cs.hlsl")
add_shader(scene_render "shader/brdf_lut.cs.hlsl")
add_shader(scene_render "shader/background.vert.glsl")
add_shader(scene_render "shader/background.frag.glsl")

target_link_libraries(scene_render PRIVATE aster_core)
target_link_libraries(scene_render PRIVATE util_helper)
target_link_libraries(scene_render PRIVATE EnTT::EnTT)

target_include_directories(scene_render PRIVATE ${TINYGLTF_INCLUDE_DIRS})

add_resource_dir(scene_render model)
add_resource_dir(scene_render image)
