@@ -22,6 +22,16 @@ option(FB_CPP_USE_BOOST_MULTIPRECISION "Enable Boost.Multiprecision helpers for
2222 ${_fb_cpp_use_boost_multiprecision_default} )
2323unset (_fb_cpp_use_boost_multiprecision_default)
2424
25+ set (_fb_cpp_use_boost_decimal_default ON )
26+ if (DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET)
27+ if (NOT EXISTS "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /share/boost-decimal" )
28+ set (_fb_cpp_use_boost_decimal_default OFF )
29+ endif ()
30+ endif ()
31+ option (FB_CPP_USE_BOOST_DECIMAL "Enable Boost.Decimal helpers for DECFLOAT types"
32+ ${_fb_cpp_use_boost_decimal_default} )
33+ unset (_fb_cpp_use_boost_decimal_default)
34+
2535file (GLOB_RECURSE SRC
2636 "*.h"
2737 "*.cpp"
@@ -34,6 +44,9 @@ endif()
3444if (FB_CPP_USE_BOOST_MULTIPRECISION)
3545 list (APPEND _fb_cpp_boost_components multiprecision)
3646endif ()
47+ if (FB_CPP_USE_BOOST_DECIMAL)
48+ list (APPEND _fb_cpp_boost_components decimal)
49+ endif ()
3750
3851if (_fb_cpp_boost_components)
3952 find_package (Boost REQUIRED
@@ -77,10 +90,19 @@ if(NOT DEFINED FB_CPP_USE_BOOST_MULTIPRECISION_VALUE)
7790 endif ()
7891endif ()
7992
93+ if (NOT DEFINED FB_CPP_USE_BOOST_DECIMAL_VALUE)
94+ if (FB_CPP_USE_BOOST_DECIMAL)
95+ set (FB_CPP_USE_BOOST_DECIMAL_VALUE 1)
96+ else ()
97+ set (FB_CPP_USE_BOOST_DECIMAL_VALUE 0)
98+ endif ()
99+ endif ()
100+
80101target_compile_definitions (${PROJECT_NAME }
81102 PUBLIC
82103 FB_CPP_USE_BOOST_DLL=${FB_CPP_USE_BOOST_DLL_VALUE}
83104 FB_CPP_USE_BOOST_MULTIPRECISION=${FB_CPP_USE_BOOST_MULTIPRECISION_VALUE}
105+ FB_CPP_USE_BOOST_DECIMAL=${FB_CPP_USE_BOOST_DECIMAL_VALUE}
84106)
85107
86108target_link_libraries (${PROJECT_NAME }
@@ -100,6 +122,12 @@ if(FB_CPP_USE_BOOST_MULTIPRECISION)
100122 )
101123endif ()
102124
125+ if (FB_CPP_USE_BOOST_DECIMAL)
126+ target_link_libraries (${PROJECT_NAME }
127+ PUBLIC Boost::decimal
128+ )
129+ endif ()
130+
103131unset (_fb_cpp_boost_components)
104132
105133file (GLOB_RECURSE HEADER_FILES
0 commit comments