diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:44:05 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:44:05 +0300 |
| commit | 0b24459ac12b6cf9fd5a401d647796ca254a8fa8 (patch) | |
| tree | f2fd66e2476976a51e2a51330fd95dc6e87b24c1 /tomlplusplus/CMakeLists.txt | |
| parent | b85e90fc3480da0e6a48da73201a0b22488cc650 (diff) | |
| parent | 1c8b7466e4946fcc3bf20484c0e1d001202cca5a (diff) | |
| download | Project-Tick-0b24459ac12b6cf9fd5a401d647796ca254a8fa8.tar.gz Project-Tick-0b24459ac12b6cf9fd5a401d647796ca254a8fa8.zip | |
Add 'tomlplusplus/' from commit '1c8b7466e4946fcc3bf20484c0e1d001202cca5a'
git-subtree-dir: tomlplusplus
git-subtree-mainline: b85e90fc3480da0e6a48da73201a0b22488cc650
git-subtree-split: 1c8b7466e4946fcc3bf20484c0e1d001202cca5a
Diffstat (limited to 'tomlplusplus/CMakeLists.txt')
| -rw-r--r-- | tomlplusplus/CMakeLists.txt | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tomlplusplus/CMakeLists.txt b/tomlplusplus/CMakeLists.txt new file mode 100644 index 0000000000..a9c5a91936 --- /dev/null +++ b/tomlplusplus/CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 3.14) + +project( + tomlplusplus + VERSION 3.4.0 + DESCRIPTION "Header-only TOML config file parser and serializer for C++17" + HOMEPAGE_URL "https://marzer.github.io/tomlplusplus/" + LANGUAGES CXX +) + +include(cmake/project-is-top-level.cmake) +include(cmake/variables.cmake) + +# ---- Declare library ---- + +add_library(tomlplusplus_tomlplusplus INTERFACE) +add_library(tomlplusplus::tomlplusplus ALIAS tomlplusplus_tomlplusplus) + +set_property( + TARGET tomlplusplus_tomlplusplus PROPERTY + EXPORT_NAME tomlplusplus +) + +target_include_directories( + tomlplusplus_tomlplusplus + ${tomlplusplus_warning_guard} # unquoted for list expansion + INTERFACE + "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" +) + +target_compile_features(tomlplusplus_tomlplusplus INTERFACE cxx_std_17) + +# ---- Install rules ---- +if (tomlplusplus_INSTALL) + include(cmake/install-rules.cmake) +endif() + +# ---- C++ Modules Support (optional) ---- +option(TOMLPLUSPLUS_BUILD_MODULES "Build C++ modules support" OFF) + +if(TOMLPLUSPLUS_BUILD_MODULES) + if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.28) + message(STATUS "Building C++ modules (CMake ${CMAKE_VERSION} supports modules)") + add_subdirectory(src/modules) + else() + message(WARNING "Skipping C++ modules (requires CMake 3.28+, found ${CMAKE_VERSION})") + endif() +else() + message(STATUS "C++ modules support is disabled. Enable with -DTOMLPLUSPLUS_BUILD_MODULES=ON") +endif() + +# ---- Examples and fuzzing ---- +if(PROJECT_IS_TOP_LEVEL) + option(BUILD_EXAMPLES "Build examples tree." OFF) + option(BUILD_FUZZER "Build fuzzer." OFF) + if(BUILD_EXAMPLES) + add_subdirectory(examples) + endif() + if(BUILD_FUZZER AND DEFINED ENV{LIB_FUZZING_ENGINE}) + add_subdirectory(fuzzing) + endif() +endif() |
