# 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(CheckCXXSourceCompiles)
check_cxx_source_compiles(config/has_float128.cpp QUADMATH_FOUND)

if(NOT QUADMATH_FOUND)
  message(STATUS "Boost.Charconv: quadmath support OFF")
  target_compile_definitions(boost_charconv PUBLIC BOOST_CHARCONV_NO_QUADMATH)
  target_link_libraries(boost_charconv
    PUBLIC
      Boost::config
      Boost::assert
      Boost::core
  )
else()
  message(STATUS "Boost.Charconv: quadmath support ON")
  target_link_libraries(boost_charconv
    PUBLIC
      Boost::config
      Boost::assert
      Boost::core
      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()