On Tue, 30 Jan 2007 06:27:49 +0000 Ciaran McCreesh <[EMAIL PROTECTED]> wrote:
> [ Background: tr1 is a set of extensions to the C++ Standard Library > giving various useful things like hash tables and smart pointers. > There are partial implementations included in g++-4.1 and boost and > full implementations available from Dinkumware. It is likely that a > lot of C++ apps will start using it in the not too distant future. ] > > What is the best way to handle packages that require parts of tr1? Dunno what's best, but I think I'd do something like: inherit ... toolchain-funcs versionator ... ... IUSE=... boost-tr1 ... ... DEPEND= ... boost-tr1? ( dev-libs/boost ) ... ... pkg_setup() { use boost && return 0; version_is_at_least "4.1" $(gcc-version) && return 0 elog "Without boost, this package needs >=gcc-4.1, for tr1 support." elog "Either switch to gcc-4.1 or higher via gcc-config, or specify" elog "the boost-tr1 USE flag." die "<pkg> needs USE=boost-tr1 or >=gcc-4.1, for tr1 support." } ... use.(local.)desc: (<CP>:)boost-tr1 - Use boost library for tr1 support (otherwise needs gcc-4.1 or higher) Profiles that don't support gcc-4.1 could add it to their use.defaults. I'd also ensure the build process always uses the boost library if USE=boost-tr1 is specified, and always uses gcc-4.1 library if boost-tr1 is not specified (so that if you say USE=boost-tr1, you get it even if the active compiler provides tr1). The idea being to avoid dependencies on the host build system, where that's reasonable. -- Kevin F. Quinn
signature.asc
Description: PGP signature