Can we create boost-config
*[I initialially raised this question in https://github.com/boostorg/boost/issues/548 https://github.com/boostorg/boost/issues/548, but @mclaw recommended this mailing list.]* Similar to many other packages (eg: curl, krb5, pcre, xml2, xslt etc..), can we also ship boost-config that would provide the installation options ? We can probably start with something like this ? $ /usr/bin/boost-config --help Usage: boost-config [ options ] Options: --cflags print compiler options --ldflags print linker options --prefix print the boost prefix --version print the boost version --help print this usage summary $ /usr/bin/boost-config --version 1.66.0 $ /usr/bin/boost-config --cflags -I/usr/include $ /usr/bin/boost-config --ldflags -L/usr/lib64 -Wl,-R/usr/lib64 Thanks.
This sounds like a pkg-config package. In fact, several projects moved from
such custom scripts to pkg-config.
Anyway, the main problem here is to make the build system (b2) output those
flags in a parseable manner. If that was implemented, it could be used to
make pkg-config packages, CMake config modules, etc.
Another problem is that different boost libraries will require different
build flags to use them, so you'll actually need e.g. boost-thread-config,
boost-filesystem-config (or boost-thread.pc and boost-filesystem.pc if
pkg-config is used).
пн, 6 сент. 2021 г., 14:03 Sreeraj K via Boost
*[I initialially raised this question in https://github.com/boostorg/boost/issues/548 https://github.com/boostorg/boost/issues/548, but @mclaw recommended this mailing list.]*
Similar to many other packages (eg: curl, krb5, pcre, xml2, xslt etc..), can we also ship boost-config that would provide the installation options ?
We can probably start with something like this ?
$ /usr/bin/boost-config --help Usage: boost-config [ options ]
Options: --cflags print compiler options --ldflags print linker options --prefix print the boost prefix --version print the boost version --help print this usage summary
$ /usr/bin/boost-config --version 1.66.0 $ /usr/bin/boost-config --cflags -I/usr/include $ /usr/bin/boost-config --ldflags -L/usr/lib64 -Wl,-R/usr/lib64
Thanks.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
On 9/6/21 2:41 PM, Дмитрий Архипов via Boost wrote:
пн, 6 сент. 2021 г., 14:03 Sreeraj K via Boost
: *[I initialially raised this question in https://github.com/boostorg/boost/issues/548 https://github.com/boostorg/boost/issues/548, but @mclaw recommended this mailing list.]*
Similar to many other packages (eg: curl, krb5, pcre, xml2, xslt etc..), can we also ship boost-config that would provide the installation options ?
We can probably start with something like this ?
$ /usr/bin/boost-config --help Usage: boost-config [ options ]
Options: --cflags print compiler options --ldflags print linker options --prefix print the boost prefix --version print the boost version --help print this usage summary
$ /usr/bin/boost-config --version 1.66.0 $ /usr/bin/boost-config --cflags -I/usr/include $ /usr/bin/boost-config --ldflags -L/usr/lib64 -Wl,-R/usr/lib64
This sounds like a pkg-config package. In fact, several projects moved from
such custom scripts to pkg-config.
Anyway, the main problem here is to make the build system (b2) output those
flags in a parseable manner. If that was implemented, it could be used to
make pkg-config packages, CMake config modules, etc.
Another problem is that different boost libraries will require different
build flags to use them, so you'll actually need e.g. boost-thread-config,
boost-filesystem-config (or boost-thread.pc and boost-filesystem.pc if
pkg-config is used).
I agree that pkg-config is the right way. I believe, we're already producing CMake scripts for aiding find_package, but that is limited to CMake usage. There's this old ticket: https://svn.boost.org/trac10/ticket/1094 I'm not sure if there was any real progress since then.
A significant difference between generating a CMake config module and a .pc
file is that CMake config modules (usually) declare targets and set their
properties. .pc files contain actual flags to pass to a compiler. I've
skimmed through boost-install.jam and it appears to convert b2 properties
to CMake properties. For .pc files one would have to either pick a compiler
for a similar translation or implement some mechanism in b2 to be able to
do it for any compiler. In the latter case, most likely every compiler
toolset module would have to be updated to support that.
пн, 6 сент. 2021 г., 14:53 Andrey Semashev via Boost : пн, 6 сент. 2021 г., 14:03 Sreeraj K via Boost *[I initialially raised this question in
https://github.com/boostorg/boost/issues/548
https://github.com/boostorg/boost/issues/548, but @mclaw recommended
this
mailing list.]* Similar to many other packages (eg: curl, krb5, pcre, xml2, xslt etc..),
can we also ship boost-config that would provide the installation On 9/6/21 2:41 PM, Дмитрий Архипов via Boost wrote:
options ? We can probably start with something like this ? $ /usr/bin/boost-config --help
Usage: boost-config [ options ] Options:
--cflags print compiler options
--ldflags print linker options
--prefix print the boost prefix
--version print the boost version
--help print this usage summary $ /usr/bin/boost-config --version
1.66.0
$ /usr/bin/boost-config --cflags
-I/usr/include
$ /usr/bin/boost-config --ldflags
-L/usr/lib64 -Wl,-R/usr/lib64 This sounds like a pkg-config package. In fact, several projects moved
from such custom scripts to pkg-config. Anyway, the main problem here is to make the build system (b2) output
those flags in a parseable manner. If that was implemented, it could be used to make pkg-config packages, CMake config modules, etc. Another problem is that different boost libraries will require different build flags to use them, so you'll actually need e.g.
boost-thread-config, boost-filesystem-config (or boost-thread.pc and boost-filesystem.pc if pkg-config is used). I agree that pkg-config is the right way. I believe, we're already
producing CMake scripts for aiding find_package, but that is limited to
CMake usage. There's this old ticket: https://svn.boost.org/trac10/ticket/1094 I'm not sure if there was any real progress since then. _______________________________________________
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost
On Mon, Sep 6, 2021 at 8:11 AM Дмитрий Архипов via Boost < boost@lists.boost.org> wrote:
A significant difference between generating a CMake config module and a .pc file is that CMake config modules (usually) declare targets and set their properties. .pc files contain actual flags to pass to a compiler. I've skimmed through boost-install.jam and it appears to convert b2 properties to CMake properties. For .pc files one would have to either pick a compiler for a similar translation or implement some mechanism in b2 to be able to do it for any compiler. In the latter case, most likely every compiler toolset module would have to be updated to support that.
If people are willing to add pkg-config targets to their build specifications (could be "automated for Boost use case) it would be fairly easy to take the usage requirements of the library target and put those in the .pc file generated. -- -- René Ferdinand Rivera Morell -- Don't Assume Anything -- No Supone Nada -- Robot Dreams - http://robot-dreams.net
participants (4)
-
Andrey Semashev
-
René Ferdinand Rivera Morell
-
Sreeraj K
-
Дмитрий Архипов