build: CMake dependencies handling improved for the freestanding mode

This commit is contained in:
Mateusz Pusz
2024-05-30 20:50:11 +02:00
parent bbd048b9be
commit 3cd5a7dd42
3 changed files with 6 additions and 4 deletions

View File

@@ -84,7 +84,8 @@ check_cxx_feature_supported("__cpp_constexpr >= 202211L" ${projectPrefix}STATIC_
check_cxx_feature_supported(__cpp_explicit_this_parameter ${projectPrefix}EXPLICIT_THIS_PARAMETER_SUPPORTED)
# validate settings
if(${projectPrefix}API_STD_FORMAT STREQUAL "TRUE"
if(NOT ${projectPrefix}API_FREESTANDING
AND ${projectPrefix}API_STD_FORMAT STREQUAL "TRUE"
AND NOT
(${projectPrefix}LIB_FORMAT_SUPPORTED
# libc++ has a basic supports for std::format but does not set __cpp_lib_format

View File

@@ -98,8 +98,9 @@ set_feature_flag(API_STRING_VIEW_RET)
set_feature_flag(API_NO_CRTP)
# Text formatting
if(${projectPrefix}API_STD_FORMAT STREQUAL "FALSE" OR (${projectPrefix}API_STD_FORMAT STREQUAL "AUTO"
AND NOT ${projectPrefix}LIB_FORMAT_SUPPORTED)
if(NOT ${projectPrefix}API_FREESTANDING
AND (${projectPrefix}API_STD_FORMAT STREQUAL "FALSE" OR (${projectPrefix}API_STD_FORMAT STREQUAL "AUTO"
AND NOT ${projectPrefix}LIB_FORMAT_SUPPORTED))
)
if(NOT TARGET fmt::fmt)
find_package(fmt REQUIRED)

View File

@@ -22,7 +22,7 @@
include(CMakeFindDependencyMacro)
if(NOT MP_UNITS_API_STD_FORMAT)
if(NOT MP_UNITS_API_FREESTANDING AND NOT MP_UNITS_API_STD_FORMAT)
find_dependency(fmt)
endif()