cmake_minimum_required(VERSION 3.16)

project(LandscapeInteractiveTool
    VERSION 0.1.0
    LANGUAGES CXX
)

set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 开启较严格的编译告警（包含未使用变量等）
if (MSVC)
    add_compile_options(/W4 /permissive-)
else()
    add_compile_options(
        -Wall
        -Wextra
        -Wpedantic
        -Wconversion
        -Wsign-conversion
        -Wunused
        -Wunused-const-variable=2
        -Wunused-parameter
        -Wshadow
    )
endif()

# 尝试优先使用 Qt6，其次 Qt5
set(QT_REQUIRED_COMPONENTS Widgets Gui Core Network Concurrent)

find_package(Qt6 COMPONENTS ${QT_REQUIRED_COMPONENTS} QUIET)
if(Qt6_FOUND)
    message(STATUS "Configuring with Qt6")
    set(QT_PACKAGE Qt6)
else()
    find_package(Qt5 COMPONENTS ${QT_REQUIRED_COMPONENTS} REQUIRED)
    message(STATUS "Configuring with Qt5")
    set(QT_PACKAGE Qt5)
endif()

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

add_subdirectory(client)

