plan_execute_t1/CMakeLists.txt

43 lines
2.1 KiB
CMake
Raw Permalink Normal View History

2026-05-06 14:04:42 +00:00
cmake_minimum_required(VERSION 3.14)
project(CMS
VERSION 1.0.0
DESCRIPTION "Centralized & Distributed Combat Mission Planning System"
LANGUAGES CXX
)
# ── C++ Standard ──────────────────────────────────────────────────────────────
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# ── MSVC UTF-8 Support ────────────────────────────────────────────────────────
if (MSVC)
add_compile_options(/utf-8)
endif()
# ── Project Include Directory ──────────────────────────────────────────────────
set(CMS_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
# ── Main Executable ───────────────────────────────────────────────────────────
add_executable(cms_main
src/main.cpp
src/app.cpp
)
target_include_directories(cms_main PRIVATE ${CMS_INCLUDE_DIR})
# ── Test Executable ───────────────────────────────────────────────────────────
add_executable(cms_test
tests/basic_test.cpp
src/app.cpp
)
target_include_directories(cms_test PRIVATE ${CMS_INCLUDE_DIR})
# ── Compiler Warnings ─────────────────────────────────────────────────────────
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(cms_main PRIVATE -Wall -Wextra -Wpedantic)
target_compile_options(cms_test PRIVATE -Wall -Wextra -Wpedantic)
elseif (MSVC)
target_compile_options(cms_main PRIVATE /W4)
target_compile_options(cms_test PRIVATE /W4)
endif()