Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boost-headers

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}")

What's included

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::operators
  • boost::utility::string_ref / string_view
  • boost::charconv::from_chars (locale-independent number parsing)
  • Supporting boost::fusion, boost::mpl, boost::preprocessor, boost::predef

Compiled sources

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.

Regenerating

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.

Boost version

Currently pinned to 1.87.0 (see ARG BOOST_VERSION in Dockerfile). Bump the arg and regenerate to upgrade.

License

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages