Integration/optional header problem
Opened this issue · 3 comments
Currently boostdep
will report as a dependency every include of every header it finds within an include folder. It would be nice if there was a way to tell boostdep
that the header is optional, lets say with something like a comment line that contains boostdep:integration_header
. To sanitize misuse of such headers they must not be included from other headers within a library that are not marked as well optional. When integration header is used from other libraries it is considered a dependency though, and the mark should be ignored.
For example dependency on Serialization library because of such headers:
DateTime
https://github.com/boostorg/date_time/blob/develop/include/boost/date_time/posix_time/time_serialize.hpp
https://github.com/boostorg/date_time/blob/develop/include/boost/date_time/gregorian/greg_serialize.hpp
DynamicBitset
Flyweight
https://github.com/boostorg/flyweight/blob/develop/include/boost/flyweight/serialize.hpp
https://github.com/boostorg/flyweight/blob/develop/include/boost/flyweight/detail/archive_constructed.hpp
https://github.com/boostorg/flyweight/blob/develop/include/boost/flyweight/detail/serialization_helper.hpp
Units
https://github.com/boostorg/units/blob/develop/include/boost/units/io.hpp
UUID
https://github.com/boostorg/uuid/blob/develop/include/boost/uuid/uuid_serialize.hpp
One idea would be to treat them as part of a separate library (e.g. DateTime~Serialization). Maybe I can prototype this in boost_dep_graph.