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) check_cxx_feature_supported(__cpp_explicit_this_parameter ${projectPrefix}EXPLICIT_THIS_PARAMETER_SUPPORTED)
# validate settings # validate settings
if(${projectPrefix}API_STD_FORMAT STREQUAL "TRUE" if(NOT ${projectPrefix}API_FREESTANDING
AND ${projectPrefix}API_STD_FORMAT STREQUAL "TRUE"
AND NOT AND NOT
(${projectPrefix}LIB_FORMAT_SUPPORTED (${projectPrefix}LIB_FORMAT_SUPPORTED
# libc++ has a basic supports for std::format but does not set __cpp_lib_format # 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) set_feature_flag(API_NO_CRTP)
# Text formatting # Text formatting
if(${projectPrefix}API_STD_FORMAT STREQUAL "FALSE" OR (${projectPrefix}API_STD_FORMAT STREQUAL "AUTO" if(NOT ${projectPrefix}API_FREESTANDING
AND NOT ${projectPrefix}LIB_FORMAT_SUPPORTED) 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) if(NOT TARGET fmt::fmt)
find_package(fmt REQUIRED) find_package(fmt REQUIRED)

View File

@@ -22,7 +22,7 @@
include(CMakeFindDependencyMacro) 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) find_dependency(fmt)
endif() endif()