# Generated by `boostdep --cmake charconv` # Copyright 2020, 2021 Peter Dimov # Distributed under the Boost Software License, Version 1.0. # https://www.boost.org/LICENSE_1_0.txt cmake_minimum_required(VERSION 3.8...3.20) project(boost_charconv VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX) add_library(boost_charconv src/from_chars.cpp src/to_chars.cpp ) add_library(Boost::charconv ALIAS boost_charconv) target_include_directories(boost_charconv PUBLIC include) # find_library for quadmath does not always work so attempt # to compile the trivial test case we use with B2 include(CheckCXXSourceRuns) set(BOOST_CHARCONV_QUADMATH_TEST_SOURCE " #include int main() { __float128 f = -2.0Q; f = fabsq(f); __float128 big = HUGE_VALQ; return f == big; } ") set(CMAKE_REQUIRED_LIBRARIES "quadmath") check_cxx_source_runs("${BOOST_CHARCONV_QUADMATH_TEST_SOURCE}" BOOST_CHARCONV_QUADMATH_FOUND) set(CMAKE_REQUIRED_LIBRARIES "") target_link_libraries(boost_charconv PUBLIC Boost::config Boost::assert Boost::core ) # Check to see if the user specified BOOST_CHARCONV_NO_QUADMATH even with quadmath support being available if(NOT BOOST_CHARCONV_QUADMATH_FOUND OR BOOST_CHARCONV_NO_QUADMATH) message(STATUS "Boost.Charconv: quadmath support OFF") else() message(STATUS "Boost.Charconv: quadmath support ON") target_compile_definitions(boost_charconv PUBLIC BOOST_CHARCONV_HAS_QUADMATH) target_link_libraries(boost_charconv PUBLIC quadmath) endif() target_compile_features(boost_charconv PUBLIC cxx_std_11) target_compile_definitions(boost_charconv PUBLIC BOOST_CHARCONV_NO_LIB PRIVATE BOOST_CHARCONV_SOURCE ) if(BUILD_SHARED_LIBS) target_compile_definitions(boost_charconv PUBLIC BOOST_CHARCONV_DYN_LINK) else() target_compile_definitions(boost_charconv PUBLIC BOOST_CHARCONV_STATIC_LINK) endif() if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt") add_subdirectory(test) endif()