cmake_minimum_required(VERSION 3.20)
project(Cinecraft)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED on)

find_package(SDL3 REQUIRED)
find_package(GLEW REQUIRED)

add_executable(${PROJECT_NAME} src/main.cpp
        include/glPipeline/VertexBuffer.hpp
        include/defines.hpp
        src/Shader.cpp
        include/Shader.hpp
        include/glPipeline/IndexBuffer.hpp
        include/camera/Camera.hpp
        include/camera/FPS_Camera.hpp
        src/camera/Camera.cpp
        src/camera/FPS_Camera.cpp
        src/glPipeline/IndexBuffer.cpp
        src/glPipeline/VertexBuffer.cpp)

target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:_DEBUG>)

target_include_directories(${PROJECT_NAME} PRIVATE include)
target_include_directories(${PROJECT_NAME} PRIVATE libs)
target_include_directories(${PROJECT_NAME} PRIVATE shaders)

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E create_symlink
        ${CMAKE_SOURCE_DIR}/shaders
        ${CMAKE_CURRENT_BINARY_DIR}/shaders)

target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3 GLEW::GLEW GL)