-
Notifications
You must be signed in to change notification settings - Fork 17
/
CMakeLists.txt
73 lines (56 loc) · 1.98 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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")
target_compile_definitions(boost_charconv PUBLIC BOOST_CHARCONV_NO_QUADMATH)
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()