cmake_minimum_required(VERSION 3.16)
project(DRAWer_2_0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR}
    COMPONENTS
        Core
        Gui
        Widgets
)
qt_standard_project_setup()

set(INCLUDE_BOOST_DIR "C:/local/boost_1_89_0")
set(INCLUDE_EIGEN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/eigen-5.0.0)

set(PROJECT_SOURCES
    main.cpp
    DRAWer_2_0.ui
    DRAWer_2_0.cpp
    Canvas.cpp
    GCS/GCS.cpp
    GCS/SubSystem.cpp
    GCS/Constraints.cpp
    GCS/Geo.cpp
    GCS/qp_eq.cpp
)

qt_add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})

set_target_properties(${PROJECT_NAME}
    PROPERTIES
        WIN32_EXECUTABLE TRUE
)

target_include_directories(${PROJECT_NAME} PUBLIC
    ${INCLUDE_BOOST_DIR}
    ${INCLUDE_EIGEN_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/GCS/headers
)

target_link_libraries(${PROJECT_NAME}
    PUBLIC
        Qt::Core
        Qt::Gui
        Qt::Widgets
)

