- add compile checker in cmake to detect charconv support status. - and expose macro for yycc to enable different part of charconv repectively to prevent duplicated defines.
31 lines
1.9 KiB
CMake
31 lines
1.9 KiB
CMake
message(STATUS "Checking charconv implementation...")
|
|
include(CheckCXXSourceCompiles)
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/chars_format.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_CHARS_FORMAT)
|
|
message(STATUS "std::chars_format Support: ${YYCC_CHARCONV_HAS_CHARS_FORMAT}")
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/from_chars_result.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_FROM_CHARS_RESULT)
|
|
message(STATUS "std::from_chars_result Support: ${YYCC_CHARCONV_HAS_FROM_CHARS_RESULT}")
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/to_chars_result.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_TO_CHARS_RESULT)
|
|
message(STATUS "std::to_chars_result Support: ${YYCC_CHARCONV_HAS_TO_CHARS_RESULT}")
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/from_chars_int.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_FROM_CHARS_INT)
|
|
message(STATUS "std::from_chars_int Support: ${YYCC_CHARCONV_HAS_FROM_CHARS_INT}")
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/from_chars_float.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_FROM_CHARS_FLOAT)
|
|
message(STATUS "std::from_chars_float Support: ${YYCC_CHARCONV_HAS_FROM_CHARS_FLOAT}")
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/to_chars_int.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_TO_CHARS_INT)
|
|
message(STATUS "std::to_chars_int Support: ${YYCC_CHARCONV_HAS_TO_CHARS_INT}")
|
|
|
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/check_charconv/to_chars_float.cpp" TEST_CODE_SNIPPET)
|
|
check_cxx_source_compiles("${TEST_CODE_SNIPPET}" YYCC_CHARCONV_HAS_TO_CHARS_FLOAT)
|
|
message(STATUS "std::to_chars_float Support: ${YYCC_CHARCONV_HAS_TO_CHARS_FLOAT}")
|