cmake_minimum_required(VERSION 3.28)
project(ModelExtractor)

set(CMAKE_CXX_STANDARD 20)

find_package(SDL2 CONFIG REQUIRED)
find_package(glm CONFIG REQUIRED)
find_package(GLEW REQUIRED)

add_subdirectory(contrib)

add_executable(ModelExtractor main.cpp
        gl_debug.cpp
        gl_debug.h)
target_link_libraries(ModelExtractor SDL2::SDL2 GLEW::GLEW GL imgui glm)
if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
    target_compile_definitions(ModelExtractor PRIVATE __DEBUG)
endif()
target_compile_options(ModelExtractor PUBLIC -Wall -Wextra)

add_custom_command(TARGET ModelExtractor
    COMMAND ${CMAKE_COMMAND} -E copy
            ${CMAKE_CURRENT_SOURCE_DIR}/shaders/base.vert
            ${CMAKE_CURRENT_BINARY_DIR}/shaders/base.vert)

add_custom_command(TARGET ModelExtractor
        COMMAND ${CMAKE_COMMAND} -E copy
        ${CMAKE_CURRENT_SOURCE_DIR}/shaders/base.frag
        ${CMAKE_CURRENT_BINARY_DIR}/shaders/base.frag)