
Debian has started putting google test in <prefix>/src, since it has
similar issues as modules do around sensitivity to compiler flags.
Getting to the understanding that the sources for the interface must be an
installed component has taken more work than expected. Figuring out where
in a LHS-ish tree they go has been complicated with differing
understandings of what <prefix>/include is for, vs other locations in the
hierarchy. Fortunately we've also got some agreement on a file that
describes what is needed to build the module interface, so there's an
indirection to give the flexibility needed.
On Thu, Dec 19, 2024 at 9:23 PM Chuanqi Xu via Boost
Where does the .cppm file go by convention? In which directory? No convention yet. Some people suggests to `<install-dir>/modules`. Some people suggests `<install-dir>/share`. There are some people suggests `<install-dir>/include` too. libc++ chose `<install-dir>/share`. And if I read correctly, libstdc++ chose `<install-dir>/include`. So this is more or less a non-consensus topic now. Thanks, Chuanqi
From:Peter Dimov via Boost
Send Time:2024 Dec. 19 (Thu.) 22:43 To:boost Cc:Peter Dimov Subject:Re: [boost] Interest for C++20 modules support of boost officially Ruben Perez wrote: If I understood the CMake developers and Chuanqi correctly (please let me know if I didn't), you do install a library with the generated object files, but you do not install the BMIs, as they're like pre-compiled headers.
Let me explain how I understood it with two concrete examples. Take Boost.Url as an example of a compiled library, and Boost.Regex as an example of a header-only library.
1. Boost.Url today installs: * libboost_url.a, containing function definitions. * Headers, containing declarations. 2. Boost.Url in the module world would install: * libboost_url.a, containing the same function definitions as above. * A boost_url.cppm file, akin to what headers are today. CMake would build a BMI from this file when a user needs to import boost.url. In practice, this cppm file will likely be implemented in terms of the header files that we have today. Since this .cppm file will include the header files, the header files should also be installed in the module case. Where does the .cppm file go by convention? In which directory?
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost < http://lists.boost.org/mailman/listinfo.cgi/boost >
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost