Files
charconv/CMakeLists.txt

73 lines
1.9 KiB
CMake

# 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 <quadmath.h>
int main()
{
__float128 f = -2.0Q;
f = fabsq(f);
return 0;
}
")
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()