Files
Card-Collection-Manager-3-s…/CMakeLists.txt
T
Sebastian Dine 55ace147bc major: initial release
* initial development

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* pipeline

* ci/cd

* ci/cd

* ci/cd

* ci/cd

* ci/cd

* ci/cd

* ci/cd

* pokemon

* pokemon

* pokemon

* pokemon

* pokemon

* pokemon

* improvements

* improvements

* ci/cd

* ci/cd

* improvements

* improvements

* improvements

* improvements

* improvements

* improvements

* improvements

* improvements

* improvements

---------

Co-authored-by: sdine <sdine@sdine.com>
2026-05-09 11:05:47 +02:00

59 lines
2.0 KiB
CMake

cmake_minimum_required(VERSION 3.22)
# Detect the toolchain BEFORE project() so we can pick clang or fall back to
# MinGW-w64 g++ on Windows. This file is no-op on non-Windows hosts.
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain.cmake)
project(ccm
VERSION 0.1.0
DESCRIPTION "Card Collection Manager 3 - C++/wxWidgets desktop app"
LANGUAGES CXX
)
if(WIN32)
enable_language(RC)
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif()
# Generate compile_commands.json for tooling (clangd, ccls, etc.).
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# All built artifacts land in a predictable place.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# Project-wide options.
option(CCM_USE_SYSTEM_WX "Use a system-installed wxWidgets via find_package instead of FetchContent" OFF)
option(CCM_BUILD_TESTS "Build unit tests for ccm_core" ON)
set(CCM_APP_VERSION "${PROJECT_VERSION} (localbuild)" CACHE STRING "Application version string embedded in UI")
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/CompilerWarnings.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Dependencies.cmake)
add_subdirectory(core)
add_subdirectory(ui_wx)
add_subdirectory(app)
if(CCM_BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
endif()
message(STATUS "")
message(STATUS "============================================================")
message(STATUS " ${PROJECT_NAME} ${PROJECT_VERSION}")
message(STATUS " Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS " Build type: ${CMAKE_BUILD_TYPE}")
message(STATUS " System wx: ${CCM_USE_SYSTEM_WX}")
message(STATUS " Build tests: ${CCM_BUILD_TESTS}")
message(STATUS "============================================================")
message(STATUS "")