From: Nikita Kniazev (nok.raven_at_[hidden])
Date: 2021-08-26 19:50:11


Some libraries (Context, Contract, Fiber, Json, Math, Nowide) are built
conditionally and use checks from the Config library to do that (`import
../../config/checks/config : requires ;`). Apparently, it happens to be a
PITA for some consumers. Vcpkg had to hack around that and update the hack
every Boost release, but Boost 1.76 revealed problems in it (
https://github.com/boostorg/build/issues/724) and Boost 1.77 is blocked by
it (https://github.com/microsoft/vcpkg/pull/19556#issuecomment-904702798).

I have a mixed feeling about silently not building libraries. I understand
that for a lot of people it is reasonable that the default stage build will
not build a library on an unsupported compiler. However, it is absolutely
bad and a confusing thing to a user that the input is silently ignored when
a library is requested using the `--with-<library>` flag.

A way to turn off the conditional building of the libraries could also be
in debug purposes alongside fixing `--with-<library>` behaviour and making
possible for vcpkg to live without resorting to hacking the boost build
system.

I have no affiliation to vcpkg and I am not a maintainer of any mentioned
libraries. It is purely my observation about how Boost is used.