Update CMake configuration for Vcpkg integration and feature enablement.

Enables features and sets build configurations via Vcpkg manifest.
Adds new presets for Windows and Linux debug/release builds using Vcpkg.
Conditionally enables features (imgui, avx2, tests, benchmark) based on Vcpkg manifest features.
This commit is contained in:
2025-10-27 09:55:49 +03:00
parent 4d9e055bb3
commit 62e7ccb054
2 changed files with 42 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.26)
project(omath VERSION 3.9.2 LANGUAGES CXX)
project(omath VERSION 3.10.1 LANGUAGES CXX)
include(CMakePackageConfigHelpers)
include(CheckCXXCompilerFlag)
@@ -11,7 +11,7 @@ else ()
check_cxx_compiler_flag("-mavx2" COMPILER_SUPPORTS_AVX2)
endif ()
option(OMATH_BUILD_TESTS "Build unit tests" OFF)
option(OMATH_BUILD_TESTS "Build unit tests" ${PROJECT_IS_TOP_LEVEL})
option(OMATH_BUILD_BENCHMARK "Build benchmarks" OFF)
option(OMATH_THREAT_WARNING_AS_ERROR "Set highest level of warnings and force compiler to treat them as errors" ON)
option(OMATH_BUILD_AS_SHARED_LIBRARY "Build Omath as .so or .dll" OFF)
@@ -33,26 +33,12 @@ if (OMATH_BUILD_VIA_VCPKG AND VCPKG_MANIFEST_FEATURES)
foreach (omath_feature IN LISTS VCPKG_MANIFEST_FEATURES)
if (omath_feature STREQUAL "imgui")
set(OMATH_IMGUI_INTEGRATION ON)
else ()
set(OMATH_IMGUI_INTEGRATION OFF)
endif ()
if (omath_feature STREQUAL "avx2")
elseif (omath_feature STREQUAL "avx2")
set(OMATH_USE_AVX2 ${COMPILER_SUPPORTS_AVX2})
else ()
set(OMATH_USE_AVX2 OFF)
endif ()
if (omath_feature STREQUAL "tests")
elseif (omath_feature STREQUAL "tests")
set(OMATH_BUILD_TESTS ON)
else ()
set(OMATH_BUILD_TESTS OFF)
endif ()
if (omath_feature STREQUAL "benchmark")
elseif (omath_feature STREQUAL "benchmark")
set(OMATH_BUILD_BENCHMARK ON)
else ()
set(OMATH_BUILD_TESTS OFF)
endif ()
endforeach ()