A minimal subset of Boost headers used by CoolProp
and related projects (teqp, superancillary). Extracted with Boost's
bcp
tool so that consumers don't have to vendor the full Boost distribution.
Pin via CPM:
CPMAddPackage(
NAME boost_headers
GIT_REPOSITORY https://github.com/CoolProp/boost-headers.git
GIT_TAG <sha-or-tag>
DOWNLOAD_ONLY YES
)
include_directories("${boost_headers_SOURCE_DIR}")The bcp header list lives in Dockerfile. Current set covers:
boost::math::tools::toms748_solve+eps_tolerance(root finding)boost::numeric::odeint(ODE integration)boost::variant,boost::optional,boost::operatorsboost::utility::string_ref/string_viewboost::charconv::from_chars(locale-independent number parsing)- Supporting
boost::fusion,boost::mpl,boost::preprocessor,boost::predef
Boost.CharConv is not header-only for floating point. Its sources are kept
under libs/charconv/src/, and consumers that call the floating-point
from_chars must compile libs/charconv/src/from_chars.cpp themselves.
Define BOOST_CHARCONV_SOURCE in that translation unit, as Boost's own build
does, and BOOST_CHARCONV_NO_LIB wherever else the header is included.
Otherwise MSVC tries to auto-link a separately built boost_charconv library.
Requires Docker.
docker compose up --build
rm -rf boost libs && tar -xJf boost.tar.xz
unpacks fresh boost/ and libs/ trees at the repo root. Commit the result and tag
a new release; downstream projects bump their CPM GIT_TAG to pick it up.
To add new headers, append them to the bcp invocation in Dockerfile
and regenerate. bcp pulls in transitive dependencies automatically.
Currently pinned to 1.87.0 (see ARG BOOST_VERSION in Dockerfile).
Bump the arg and regenerate to upgrade.
The headers under boost/ and the sources under libs/ are distributed under the
Boost Software License 1.0, a copy
of which is provided in LICENSE. The Dockerfile, docker-compose.yml,
and this README.md are contributed to the public domain.