add_library(scenes_cube STATIC "cube.cpp")
target_include_directories(scenes_cube PRIVATE "." "..")
target_compile_features(scenes_cube PRIVATE cxx_std_23)
target_compile_options(scenes_cube PRIVATE ${BASE_OPTIONS})
target_compile_definitions(scenes_cube PRIVATE ${BASE_DEFINITIONS})
target_link_libraries(scenes_cube PUBLIC cbt_scene glm::glm)

add_library(scenes_sphere STATIC "sphere.cpp")
target_include_directories(scenes_sphere PRIVATE "." "..")
target_compile_features(scenes_sphere PRIVATE cxx_std_23)
target_compile_options(scenes_sphere PRIVATE ${BASE_OPTIONS})
target_compile_definitions(scenes_sphere PRIVATE ${BASE_DEFINITIONS})
target_link_libraries(scenes_sphere PUBLIC cbt_scene glm::glm)

add_library(scenes_cornell_box STATIC "cornell_box.cpp")
target_include_directories(scenes_cornell_box PRIVATE "." "..")
target_compile_features(scenes_cornell_box PRIVATE cxx_std_23)
target_compile_options(scenes_cornell_box PRIVATE ${BASE_OPTIONS})
target_compile_definitions(scenes_cornell_box PRIVATE ${BASE_DEFINITIONS})
target_link_libraries(scenes_cornell_box PUBLIC cbt_scene glm::glm)

# Convenience interface for all scenes
add_library(scenes INTERFACE)
target_link_libraries(scenes INTERFACE scenes_cube scenes_sphere scenes_cornell_box)
