2020-05-13 16:53:59 -04:00
|
|
|
cmake_minimum_required(VERSION 3.17)
|
2020-02-17 10:33:56 -05:00
|
|
|
project(raytracer)
|
|
|
|
|
2020-05-13 16:53:59 -04:00
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
|
2020-02-17 10:33:56 -05:00
|
|
|
find_package(GLM REQUIRED)
|
2020-05-13 16:53:59 -04:00
|
|
|
find_package(SDL2 REQUIRED)
|
2020-02-17 10:33:56 -05:00
|
|
|
|
|
|
|
add_subdirectory(extern)
|
|
|
|
|
2024-09-26 13:49:16 +02:00
|
|
|
add_executable(raytracer)
|
|
|
|
target_sources(raytracer PRIVATE
|
2022-08-16 07:41:12 -04:00
|
|
|
src/main.cpp
|
2024-09-26 13:49:16 +02:00
|
|
|
PRIVATE FILE_SET CXX_MODULES FILES
|
|
|
|
src/aabb.cpp
|
|
|
|
src/camera.cpp
|
|
|
|
src/glm.cpp
|
|
|
|
src/image.cpp
|
|
|
|
src/intersections.cpp
|
|
|
|
src/lighting.cpp
|
|
|
|
src/octree.cpp
|
|
|
|
src/ray.cpp
|
2022-08-16 07:41:12 -04:00
|
|
|
src/scene.cpp)
|
2020-05-13 16:53:59 -04:00
|
|
|
target_include_directories(raytracer PUBLIC include PRIVATE ${GLM_INCLUDE_DIR})
|
2024-09-26 11:53:28 +02:00
|
|
|
target_link_libraries(raytracer PUBLIC stb SDL2::Main imgui glad tinyobjloader)
|
2020-02-17 10:33:56 -05:00
|
|
|
set_target_properties(raytracer PROPERTIES
|
2024-09-25 10:29:46 +02:00
|
|
|
CXX_STANDARD 23
|
2022-08-16 07:41:12 -04:00
|
|
|
CXX_STANDARD_REQUIRED YES
|
|
|
|
CXX_EXTENSIONS NO
|
2024-09-26 13:49:16 +02:00
|
|
|
CXX_SCAN_FOR_MODULES ON # For main.cpp, which is not in the module set technically
|
2022-08-16 07:41:12 -04:00
|
|
|
)
|