On Wed, 2017-07-19 at 17:14 -0400, Edward Diener via Boost wrote:
On 7/19/2017 4:46 PM, Oliver Kowalke via Boost wrote:
As mentioned before - it is not only your cmake port, all presented boost-cmake files have ported only fraction of the required functionality. For instance feature tests used in Jamfile to test for presence/absence of some C++ features to control the build. If it's so easy to do it with Cmake I'm wondering why it wasn't done. I've the impression that only the easy parts of Jamfile have been ported. The difficult parts are left ...
Boost Build has the ability to run a 'program' and change the logic of what is to be built, or how something is to be built, based on the return value of that program. I do not know CMake well enough but I am assuming that CMake also has such a feature, else it would really be deficient IMO. That is essentially what Boost Config offers and Boost Predef offers and my briefly discussed Cxxd library also offered, through the facility in Boost Build which allows this. Porting Boost Config and Boost Predef to use CMake would have to port this ability also in an easy to use way, since other libraries also depend on the Boost Config and Boost Predef facilities when they use Boost Build for their purposes.
Yes, the idea is to provide a custom cmake function like `boost_config_feature_check` that will do the check for the user. This function would be provided when the user calls `find_package(boost_config)`. And would need to be generated in Boost.Config's package configuration. To do it exactly the same as bjam currently we would need to install the .ipp files as well, but alternatively we could feature check by checking if the define is available in boost config's headers, which has the advantage of being consistent during build and compilation.