geopro/CMakeLists.txt

48 lines
1.9 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

cmake_minimum_required(VERSION 3.21)
project(geopro_desktop LANGUAGES CXX)
# ---- Global C++ settings (规约 §3.2: C++17, 可渐进 C++20) ----
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Qt 自动工具(仅 view/app 层需要 moc/uic/rcc
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(MSVC)
add_compile_options(/utf-8 /MP /W4 /permissive-)
endif()
# =====================================================================
# 构建方案②-修订(设计 §11 / K-8 / docs/ENV_SETUP_Windows.md
# - 单一 Qt = 官方 MSVC 预编译 QtCMAKE_PREFIX_PATH 指向 D:/Qt/6.11.1/msvc2022_64
# - VTK: 预先用官方 Qt 源码编并 install 到 VTK_DIR见 ENV_SETUP / Phase 0
# - ADS / QtKeychain: 经 FetchContent 对接同一份官方 Qt绝不走 vcpkg避免双 Qt
# - 仅非 Qt 依赖GDAL/PROJ/OpenSSL/Eigen/...)走 vcpkg
# =====================================================================
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Network Sql Concurrent)
find_package(VTK REQUIRED) # 来自 VTK_DIR预编 install 前缀);含 GUISupportQt
# 非 Qt 依赖vcpkg随分层逐步启用
# find_package(GDAL CONFIG REQUIRED)
# find_package(PROJ CONFIG REQUIRED)
# find_package(Eigen3 CONFIG REQUIRED)
# find_package(spdlog CONFIG REQUIRED)
# find_package(nlohmann_json CONFIG REQUIRED)
# find_package(OpenSSL REQUIRED)
# ADS / QtKeychainFetchContent 对接官方 Qtspike#2 接入;体量小,源码编可接受)
# include(FetchContent)
# FetchContent_Declare(ads GIT_REPOSITORY https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git GIT_TAG 4.3.1)
# FetchContent_Declare(qtkeychain GIT_REPOSITORY https://github.com/frankosterfeld/qtkeychain.git GIT_TAG 0.14.3)
# FetchContent_MakeAvailable(ads qtkeychain)
add_subdirectory(src)
enable_testing()
add_subdirectory(tests)