Boost: why "--layout==tagged"?
Frank Schima
mf2k at macports.org
Fri Jan 18 22:33:03 UTC 2019
Hi Michael,
> On Jan 17, 2019, at 1:17 PM, Michael Dickens <michaelld at macports.org> wrote:
>
> I've been trying to get Boost 1.69.0 working, without much luck yet because the default installed library names as installed by MacPorts are changed from "libboost_COMP-mt.dylib" to "libboost_COMP-mt-ARCH.dylib", where "COMP" is the component name (e.g., "system", "thread") and "ARCH" is the abbreviated architecture (e.g., "x64" for Intel x86 64-bit, "p32" for PPC 32-bit).
>
> None of the build systems that I've checked (cmake and autotools) recognizes this style of library name. I think I can coerce CMake into working, but it's a bit of a hack & may not work work universally. I'd guess I can do the same for other build systems, but each is unique & hence I'd rather get rid of the ARCH part of the library names. Which got me wondering about why the whole "mt" part too.
>
> After some sleuthing, I find that one reason for the library name change is that in the Boost Portfile we're using build.args of "--layout=tagged" rather than the default of "--layout=system". When using the latter, I get just the basic library names: "libboost_COMP.dylib", which to me actually makes the most sense: the goal of "tagged" is to allow simultaneous / parallel installation of multiple Boost libraries: single ("") & multi-threaded "-mt"; different ARCH ("-x64", "-p32" etc); different compilers and compiler versions ("clang10", "gcc8", etc)... you get the idea.
>
> For all practical purposes, we in MacPorts-land just install Boost ... one version, and that's it. We don't need all of the tagged naming for multiple versions installed -- at least not in my experience or opinion.
>
> The commit that moves from "system" to "tagged" goes -way- back: < https://github.com/macports/macports-ports/commit/2dbce9b6303f26dc055c53d3302f8c158c025294 > ... by Anthony Ramine committed on Jun 19, 2009.
>
> So .... wondering what folks think about moving back to "system" here and just the basic library names. I'm all for it; if you're not, I'd wonder why not? - MLD
Sounds good to me. You have researched this and seem to know what you are talking about. I would like to hear what Ryan thinks before you implement however.
Cheers!
Frank
More information about the macports-dev
mailing list