mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-17 18:06:59 +02:00
bump(dev-libs/boost): sync with upstream
This commit is contained in:
parent
8e8aee415f
commit
8ad5702b5b
@ -1,16 +1,2 @@
|
||||
AUX boost-1.48.0-disable_icu_rpath.patch 1077 SHA256 26aba4b06789cff12b3f96ae3c269db9aae3eabe1acb62035e3217c3b27a89aa SHA512 013503fd16bcb609c624c9952a5448e612b81150db9ce60b5a51acbb57b62ce1cf0e7c5dd4a58c110ca7895c86effef24d8fe55ea3f316c9e47d5c549a33180c WHIRLPOOL ae630623f7f3cf6bec63c63b01b2e58cce5e3aecfebcf54144a9f0130dae0c10a94f7f11cd29734e52df2741fb62ed72983a35e4c1b854cf7c939fed5477c616
|
||||
AUX boost-1.48.0-disable_libboost_python3.patch 1513 SHA256 3e0d634e7a9c03c02986abc6fdb39532aa22e4cf5236a25946251e29e769b405 SHA512 9a2b189530af9fa149203f0621b171461f11212306aeb4d94075a2896ed97abb12d47e6bc0429814405829244604044c2101ad34686a10b12ebe3536b2289ed7 WHIRLPOOL d4ad2e099ea443600b493d4f97047002c5f6d1be6607b03de22bfbf3abcccb8abd452403714811aede72be6462154d324a31c7189de627998f432d96750d56cd
|
||||
AUX boost-1.48.0-no_strict_aliasing_python2.patch 745 SHA256 f355100a66059afc1c50b243e800a31c1c876c112f5ec7b6efb3c3480aca492b SHA512 ad4c7b8ec59154e2e9588b72a23453f4dc915eecc87a065b10eccc6f713e4a55270f0766bad7766c53dfb934e4d94a25d006567c9e18d0e7dc32649f5a601296 WHIRLPOOL c19224ecf056cfe82762b37a901458def62497a6c555a7236eea04746739ace0c5a6b4835956cab909f9f2f72e346ce6084cfb8ab0e9ad3b9510935db1737308
|
||||
AUX boost-1.48.0-python_linking.patch 1282 SHA256 11d283d41767253a9cae3ff2526ed829f6333158e9460ba42f1215746d3c240c SHA512 9aff888908476107bde818f306fafd855408d214dd13abd3406339b911ba3c56a7a76ac2a549c63be16ba73a86275860fc1bf78c2fd976c872772b4199ecedb6 WHIRLPOOL aa89c864b800ba29c77e0ef82d1dd50ed007b36c02c4e6a005ccdae0ddafaf0491cce37801f5e574fb2830669f57b28d82c19edb719dc847eab4fd53043ac999
|
||||
AUX boost-1.51.0-respect_python-buildid.patch 1577 SHA256 8a029d597a233eb7efff3fc1fa8c622f6d616f35185cd7e531669b9915247de8 SHA512 bbe7e586a95c615d51612bf0404c07179b07c33a33e67957af5056ff80f44c620f81244d7fe30519f08f2d19e1d87f8fa09fa32c7f5d37f6f13de4590c050731 WHIRLPOOL 8aa6115b15c4402cadfc42b825a145a2b61892211031431def5452ca73ce441adba197690ff7a85cf13a831f8ae8b016b97611b1e164351eb0707597d99d2fd8
|
||||
AUX boost-1.51.0-support_dots_in_python-buildid.patch 617 SHA256 7c4e5dd3e0e148fde5f3b008d08160ebd71250aaa01c5e685d667e0cc296a054 SHA512 667452299f96ac3008340f901c6a5355956676b10f82134e650f8c8e06e7c6f8814c2b92d07e958c31b11e013601c0b3ad4020cdc35bbd558761fcd33bb68b3c WHIRLPOOL 26ddfe5c9473ce704b6ca11b9380148028e6a05f5ec62fbf4363d4ced0533d68190d000e975e1151acce67eef3a8430f2dba35a31605a97ff500752d367fb0e9
|
||||
AUX boost-1.55.0-context-x32.patch 1077 SHA256 1da4ff48b98416cac601c52594d4c4da3fb89d0a3e8908f119f05cc8ae76f9c7 SHA512 0e2e45abe5833396508666355e26bafe114fa4ada628b24d8d9953268edddcb2f8e3dcfe8bc7f27d6c1794418990dc9ef914c936dfa64ed6e5e647a40e3f8a73 WHIRLPOOL 0b7a3521a8ec513b833d0292fa3e3bcafc8232fa96d2e41afd25da8dc30bdb49ee4319c7c8555d95e7d3de55fc704d83e443ba49bf89d6961a3f5af73c024a71
|
||||
AUX boost-1.56.0-build-auto_index-tool.patch 412 SHA256 02cbad68d52513860ffbdc2e56be1087dd0bd73423b9b51b122bdc015dbd4a4c SHA512 9fe245adddf76375d0ee8066952c46d229c9e37fdce83ff608fcc1fb5942b1c226a0fba6e28f859bbcd58863dc49a356f32c7fcc3b90baca4069c6bdc9c0f203 WHIRLPOOL 4a55212ce969b389c1288496448114b131c70c92f6a4e26c8667c0d24138cdd813026b3a19698667e5aa0418cca9f690820017de06a19376fd63e00898a1d555
|
||||
AUX boost-1.63.0-fix-python.patch 4210 SHA256 7291f343d66c0493da130811e720d2e56b33b321b5b583d9aec1af79651e8c6b SHA512 0f390cae5a53f48f548e65149aaca4b1191ca6610863e7e471686556107c8ac398eb4bcad71a92849e941cad031cec9cbd543c646ee122238579ca881c420aad WHIRLPOOL 6bbf8a8cb0d3e431f3655b95d5262b9103c6da3259c7a884f45641b6401df06de81978433f9f5ea0411a445bdd1439dc72ed1f275ff21885cc74276e771643e8
|
||||
DIST boost_1_62_0.tar.bz2 84513338 SHA256 36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0 SHA512 5385ae3d5255a433a704169ad454d8dc2b0b5bcae3fb23defd6570df4ff7d845cf9fcbeebccdc1c5db0eec9f82ee3d90040de9507c8167467c635d3b215463be WHIRLPOOL 49c4558d5e6d72084f083a76217e3d97b504f112d7e4d228eded72dc49fa7e675ba943a9fc52a3c27d296ee689aee27d4566796c6eae71cf647430285777c0fb
|
||||
DIST boost_1_63_0.tar.bz2 81984414 SHA256 beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad WHIRLPOOL 28c241785097272a1e0952e529eef082444e4ef35a8d738161e4a491a986d75359d3afe888b2ea91a4a81b6ec7a5772ebea337c9d09377b43f6eed66cac90378
|
||||
EBUILD boost-1.62.0-r1.ebuild 12708 SHA256 c6a95b6d650ece1ac0cb2173e41cb1334160a192ed1d81b423bf80fa8593bd30 SHA512 184f3410137d876afaf09a7090a35911c2e87884469c0c5ddc02627b4f88fc6188813a9c085127d745846b1355254553a2dc311373fbadd4f00c265913d4f946 WHIRLPOOL 33e9304cfe65ebe8bcebea796dbac41bf7e140b547ec9d5786648cb45a225ed46ef0256e27b200b666be864affe958caba16a5635d58ea51bf31d042cdb9b8a6
|
||||
EBUILD boost-1.63.0.ebuild 12474 SHA256 5d0cd584190f4441d05bf0bea3f10cc176633506114e461a5fba96983b1a68c1 SHA512 106d2a09bd0aed68755aed40b36fd3f71e64a4ef795d2213e38bed787cc4387ca3db362a1a73c0ba4a7e3877e83d47a2db70a8e2b1c654e648981ca0c56b2007 WHIRLPOOL 7cac1cb05aa9109cbc2be04bc0332bd1190b91f8385d06cff1f9858fb38c79797d3097c8eb46aa0143272dcc3fa54a0f4033037d78f65b28150a71fa37b2d8cf
|
||||
MISC ChangeLog 9975 SHA256 642cfd545560930656783f915297a280e467394d4d2c53a5f81485893701b6ed SHA512 36a87862bce59e58f7af6d02c6eca9fd9169ac7f4736417f64aa941141c800d80c8979c0ed4cd62e55a22f2bcd1a6803bc5daa8393c2f3e9f23060aefafa0c1b WHIRLPOOL e76c059fba7246adcb3e48d0b7f8b58f61ec4e1f95d82d7af4ba021e29fd1a34b9a95b415f7f98d6f03a0e86f549e22f2178ee36e14ace177d73e78d5c6c9697
|
||||
MISC ChangeLog-2015 60992 SHA256 f3b1d8b8c4ad6bd080f9b3d18ccb1cc360d47864f4afc95992e171d475d682a1 SHA512 6f29b95e625e1a8a8a7ea2578f07b543329e007443f3b4926e07c913ab21336e1b1332084b090354dcd9899b6f0aa9012b92e0cb5e0457733da4a47da86a818f WHIRLPOOL e11113ea0a8eda558457c7018283f274d10df473c116da67126640d56b49107e05326e0a8a3ef4f9043a22e2fc91f151c1cbed71bfe41cac52f5467e12a7e1d8
|
||||
MISC metadata.xml 1526 SHA256 f5787558fba8e3619029fd1b86b62171767b6eb817cd004732e8ac35fc3bb9fd SHA512 4ba131f2492ae41f642a28dd69e5bd1d5d79c013e42a6c18ba135b36d470990ea20c8aa7cec6e3cb1d6ea8d7f6b6a5b45efb4b3dcba198bcf43809eff0f65ae6 WHIRLPOOL 11ade1e1b81bfc061f45a2ad723e4d8e2fbac090eaff04f9b837fe68f2d891ab95d555068754a323ebfde253186deef79d18713be85e12c816d12c7773776903
|
||||
|
@ -1,413 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
PYTHON_COMPAT=( python{2_7,3_4} )
|
||||
|
||||
inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="http://www.boost.org/"
|
||||
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] )
|
||||
icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( virtual/mpi[cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
|
||||
mpi_needed() {
|
||||
multilib_is_native_abi && use mpi
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if mpi_needed; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch \
|
||||
"${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
|
||||
"${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
|
||||
"${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
|
||||
"${FILESDIR}/${PN}-1.52.0-threads.patch" \
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
|
||||
"${FILESDIR}/${PN}-1.55.0-variadic-templates.patch" \
|
||||
"${FILESDIR}/${PN}-1.56.0-atomic.patch"
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
epatch_user
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
|
||||
echo b2 ${b2_opts}
|
||||
b2 ${b2_opts}
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
|
||||
append-cxxflags -std=gnu++98
|
||||
|
||||
use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
|
||||
use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
|
||||
mpi_needed || OPTIONS+=" --without-mpi"
|
||||
use nls || OPTIONS+=" --without-locale"
|
||||
use context || OPTIONS+=" --without-context --without-coroutine"
|
||||
|
||||
OPTIONS+=" pch=off"
|
||||
OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
|
||||
OPTIONS+=" --layout=system"
|
||||
OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools > /dev/null || die
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
|
||||
dohtml \
|
||||
-A pdf,txt,cpp,hpp \
|
||||
*.{htm,html,png,css} \
|
||||
-r doc
|
||||
dohtml -A pdf,txt -r tools
|
||||
insinto /usr/share/doc/${PF}/html
|
||||
doins -r libs
|
||||
doins -r more
|
||||
|
||||
# To avoid broken links
|
||||
insinto /usr/share/doc/${PF}/html
|
||||
doins LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED}usr/include" \
|
||||
--libdir="${ED}usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if mpi_needed; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED}usr/$(get_libdir)" > /dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
|
||||
[[ -L ${symlink} ]] && rm -f "${symlink}"
|
||||
done
|
||||
}
|
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||
|
||||
inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="http://www.boost.org/"
|
||||
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( virtual/mpi[cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
|
||||
mpi_needed() {
|
||||
multilib_is_native_abi && use mpi
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if mpi_needed; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch \
|
||||
"${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
|
||||
"${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
|
||||
"${FILESDIR}/${PN}-1.52.0-threads.patch" \
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
|
||||
"${FILESDIR}/${PN}-1.58.0-fix-non-constexpr-types-regression.patch"
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
epatch_user
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
|
||||
echo b2 ${b2_opts}
|
||||
b2 ${b2_opts}
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
|
||||
append-cxxflags -std=gnu++98
|
||||
|
||||
use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
|
||||
use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
|
||||
mpi_needed || OPTIONS+=" --without-mpi"
|
||||
use nls || OPTIONS+=" --without-locale"
|
||||
use context || OPTIONS+=" --without-context --without-coroutine"
|
||||
|
||||
OPTIONS+=" pch=off"
|
||||
OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
|
||||
OPTIONS+=" --layout=system"
|
||||
OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools > /dev/null || die
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
|
||||
dohtml \
|
||||
-A pdf,txt,cpp,hpp \
|
||||
*.{htm,html,png,css} \
|
||||
-r doc
|
||||
dohtml -A pdf,txt -r tools
|
||||
insinto /usr/share/doc/${PF}/html
|
||||
doins -r libs
|
||||
doins -r more
|
||||
|
||||
# To avoid broken links
|
||||
insinto /usr/share/doc/${PF}/html
|
||||
doins LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED}usr/include" \
|
||||
--libdir="${ED}usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if mpi_needed; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED}usr/$(get_libdir)" > /dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
|
||||
[[ -L ${symlink} ]] && rm -f "${symlink}"
|
||||
done
|
||||
}
|
@ -1,405 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="http://www.boost.org/"
|
||||
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( virtual/mpi[cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
|
||||
mpi_needed() {
|
||||
multilib_is_native_abi && use mpi
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if mpi_needed; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch \
|
||||
"${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
|
||||
"${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
eapply_user
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
|
||||
echo b2 ${b2_opts}
|
||||
b2 ${b2_opts}
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
|
||||
append-cxxflags -std=gnu++98
|
||||
|
||||
use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
|
||||
use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
|
||||
mpi_needed || OPTIONS+=" --without-mpi"
|
||||
use nls || OPTIONS+=" --without-locale"
|
||||
use context || OPTIONS+=" --without-context --without-coroutine"
|
||||
|
||||
OPTIONS+=" pch=off"
|
||||
OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
|
||||
OPTIONS+=" --layout=system"
|
||||
OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools > /dev/null || die
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
|
||||
find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
|
||||
find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED}usr/include" \
|
||||
--libdir="${ED}usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if mpi_needed; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED}usr/$(get_libdir)" > /dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
|
||||
[[ -L ${symlink} ]] && rm -f "${symlink}"
|
||||
done
|
||||
}
|
@ -1,408 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="http://www.boost.org/"
|
||||
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( virtual/mpi[cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-python_linking.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
"${FILESDIR}/${PN}-1.60.0-deprecated-header-ice_not.patch"
|
||||
"${FILESDIR}/${PN}-1.60.0-auto-pointer-python.patch"
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
|
||||
mpi_needed() {
|
||||
multilib_is_native_abi && use mpi
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if mpi_needed; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
|
||||
echo b2 ${b2_opts}
|
||||
b2 ${b2_opts}
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
|
||||
append-cxxflags -std=gnu++98
|
||||
|
||||
use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
|
||||
use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
|
||||
mpi_needed || OPTIONS+=" --without-mpi"
|
||||
use nls || OPTIONS+=" --without-locale"
|
||||
use context || OPTIONS+=" --without-context --without-coroutine --without-coroutine2"
|
||||
|
||||
OPTIONS+=" pch=off"
|
||||
OPTIONS+=" --boost-build=\"${EPREFIX}\"/usr/share/boost-build --prefix=\"${ED}usr\""
|
||||
OPTIONS+=" --layout=system"
|
||||
OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools > /dev/null || die
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
|
||||
find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
|
||||
find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
${OPTIONS} \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED}usr/include" \
|
||||
--libdir="${ED}usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if mpi_needed; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED}usr/$(get_libdir)" > /dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
|
||||
[[ -L ${symlink} ]] && rm -f "${symlink}"
|
||||
done
|
||||
}
|
@ -1,428 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="http://www.boost.org/"
|
||||
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-python_linking.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if use mpi; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts=(
|
||||
"--user-config=${BOOST_ROOT}/user-config.jam"
|
||||
"$@"
|
||||
)
|
||||
echo b2 "${b2_opts[@]}"
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
|
||||
append-cxxflags -std=gnu++98
|
||||
|
||||
use icu && OPTIONS+=(
|
||||
"-sICU_PATH=${EPREFIX}/usr"
|
||||
)
|
||||
use icu || OPTIONS+=(
|
||||
--disable-icu
|
||||
boost.locale.icu=off
|
||||
)
|
||||
use mpi || OPTIONS+=(
|
||||
--without-mpi
|
||||
)
|
||||
use nls || OPTIONS+=(
|
||||
--without-locale
|
||||
)
|
||||
use context || OPTIONS+=(
|
||||
--without-context
|
||||
--without-coroutine
|
||||
--without-coroutine2
|
||||
)
|
||||
|
||||
OPTIONS+=(
|
||||
pch=off
|
||||
--boost-build="${EPREFIX}"/usr/share/boost-build
|
||||
--prefix="${ED}usr"
|
||||
--layout=system
|
||||
threading=$(usex threads multi single)
|
||||
link=$(usex static-libs shared,static shared)
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
|
||||
-sNO_BZIP2=1
|
||||
)
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools > /dev/null || die
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
|
||||
find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
|
||||
find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED}usr/include" \
|
||||
--libdir="${ED}usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if use mpi; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED}usr/$(get_libdir)" > /dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
|
||||
[[ -L ${symlink} ]] && rm -f "${symlink}"
|
||||
done
|
||||
}
|
@ -1,433 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="http://www.boost.org/"
|
||||
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( virtual/mpi[cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-python_linking.patch"
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
|
||||
mpi_needed() {
|
||||
multilib_is_native_abi && use mpi
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if mpi_needed; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts=(
|
||||
"--user-config=${BOOST_ROOT}/user-config.jam"
|
||||
"$@"
|
||||
)
|
||||
echo b2 "${b2_opts[@]}"
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
|
||||
append-cxxflags -std=gnu++98
|
||||
|
||||
use icu && OPTIONS+=(
|
||||
"-sICU_PATH=${EPREFIX}/usr"
|
||||
)
|
||||
use icu || OPTIONS+=(
|
||||
--disable-icu
|
||||
boost.locale.icu=off
|
||||
)
|
||||
mpi_needed || OPTIONS+=(
|
||||
--without-mpi
|
||||
)
|
||||
use nls || OPTIONS+=(
|
||||
--without-locale
|
||||
)
|
||||
use context || OPTIONS+=(
|
||||
--without-context
|
||||
--without-coroutine
|
||||
--without-coroutine2
|
||||
)
|
||||
|
||||
OPTIONS+=(
|
||||
pch=off
|
||||
--boost-build="${EPREFIX}"/usr/share/boost-build
|
||||
--prefix="${ED}usr"
|
||||
--layout=system
|
||||
threading=$(usex threads multi single)
|
||||
link=$(usex static-libs shared,static shared)
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
|
||||
-sNO_BZIP2=1
|
||||
)
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools > /dev/null || die
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
|
||||
find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
|
||||
find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if mpi_needed; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED}usr/include" \
|
||||
--libdir="${ED}usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if mpi_needed; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED}usr/$(get_libdir)" > /dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
|
||||
[[ -L ${symlink} ]] && rm -f "${symlink}"
|
||||
done
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
Index: /trunk/boostcpp.jam
|
||||
===================================================================
|
||||
--- /trunk/boostcpp.jam (revision 79301)
|
||||
+++ /trunk/boostcpp.jam (revision 81000)
|
||||
@@ -210,6 +210,44 @@
|
||||
}
|
||||
|
||||
+rule filtered-target ( name : message + : sources + : requirements * )
|
||||
+{
|
||||
+ message $(name)-message : warning: $(message) ;
|
||||
+ alias $(name) : $(sources) : $(requirements) ;
|
||||
+ alias $(name) : $(name)-message ;
|
||||
+
|
||||
+ local p = [ project.current ] ;
|
||||
+ $(p).mark-target-as-explicit $(name) ;
|
||||
+ $(p).mark-target-as-explicit $(name)-message ;
|
||||
+}
|
||||
+
|
||||
rule declare_install_and_stage_proper_targets ( libraries * : headers * )
|
||||
{
|
||||
+ for local l in $(libraries)
|
||||
+ {
|
||||
+ if $(l) = locale
|
||||
+ {
|
||||
+ filtered-target $(l)-for-install :
|
||||
+ Skipping Boost.Locale library with threading=single. :
|
||||
+ libs/$(l)/build : <threading>multi ;
|
||||
+ }
|
||||
+ else if $(l) = wave
|
||||
+ {
|
||||
+ filtered-target $(l)-for-install :
|
||||
+ Skipping Boost.Wave library with threading=single. :
|
||||
+ libs/$(l)/build : <threading>multi ;
|
||||
+ }
|
||||
+ else if $(l) = thread
|
||||
+ {
|
||||
+ filtered-target $(l)-for-install :
|
||||
+ Skipping Boost.Thread library with threading=single. :
|
||||
+ libs/$(l)/build : <threading>multi ;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ alias $(l)-for-install : libs/$(l)/build ;
|
||||
+ }
|
||||
+ }
|
||||
+ local library-targets = $(libraries)-for-install ;
|
||||
+
|
||||
install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
|
||||
|
||||
@@ -239,5 +277,5 @@
|
||||
: $(install-requirements) <install-no-version-symlinks>on
|
||||
:
|
||||
- : libs/$(libraries)/build
|
||||
+ : $(libraries)-for-install
|
||||
: $(headers)
|
||||
;
|
||||
@@ -246,5 +284,5 @@
|
||||
# Install just library.
|
||||
install stage-proper
|
||||
- : libs/$(libraries)/build
|
||||
+ : $(libraries)-for-install
|
||||
: <location>$(stage-locate)/lib
|
||||
<install-dependencies>on <install-type>LIB
|
@ -1,17 +0,0 @@
|
||||
Make tools compiled successfully with forced C++98
|
||||
|
||||
Gentoo bugreport: https://bugs.gentoo.org/show_bug.cgi?id=503468
|
||||
|
||||
diff --git a/tools/regression/src/compiler_status.cpp b/tools/regression/src/compiler_status.cpp
|
||||
index 63f8134..3f3374a 100644
|
||||
--- a/tools/regression/src/compiler_status.cpp
|
||||
+++ b/tools/regression/src/compiler_status.cpp
|
||||
@@ -128,7 +128,7 @@ namespace
|
||||
string ln(line);
|
||||
if (ln.find("Revision: ") != string::npos)
|
||||
{
|
||||
- for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
|
||||
+ for(string::iterator itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
|
||||
rev += *itr;
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
From eec808554936ae068b23df07ab54d4dc6302a695 Mon Sep 17 00:00:00 2001
|
||||
From: jzmaddock <jzmaddock@gmail.com>
|
||||
Date: Sat, 23 Aug 2014 09:38:02 +0100
|
||||
Subject: [PATCH] Fix BOOST_NO_CXX11_VARIADIC_TEMPLATES definition - the
|
||||
feature was introduced in GCC 4.4.
|
||||
|
||||
---
|
||||
boost/config/compiler/gcc.hpp | 9 +--------
|
||||
1 file changed, 1 insertion(+), 8 deletions(-)
|
||||
|
||||
diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
|
||||
index f37159d..97d8a18 100644
|
||||
--- a/boost/config/compiler/gcc.hpp
|
||||
+++ b/boost/config/compiler/gcc.hpp
|
||||
@@ -154,14 +154,6 @@
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
-
|
||||
-// Variadic templates compiler:
|
||||
-// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
||||
-# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
|
||||
-# define BOOST_HAS_VARIADIC_TMPL
|
||||
-# else
|
||||
-# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
-# endif
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.4.n and later
|
||||
@@ -176,6 +168,7 @@
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
+# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
|
@ -1,402 +0,0 @@
|
||||
Fixed in 1.57
|
||||
|
||||
commit 415db7054723291042e4ff1ffa8fdd5bc8b07163
|
||||
Author: Andrey Semashev <andrey.semashev@gmail.com>
|
||||
Date: Sat Sep 27 20:40:09 2014 +0400
|
||||
|
||||
Added support for extending operations to GCC atomic backend.
|
||||
|
||||
Fix for #10446. Some platforms (e.g. Raspberry Pi) only support atomic ops of some particular size but not less. Use extending arithmetic operations for these platforms. Also, make sure bools are always treated as 8-bit values, even if the actual type is larger. This makes its use in atomic<>, atomic_flag and lock pool more consistent.
|
||||
|
||||
diff --git a/include/boost/atomic/capabilities.hpp b/include/boost/atomic/capabilities.hpp
|
||||
index 658dd22..05bbb0f 100644
|
||||
--- a/include/boost/atomic/capabilities.hpp
|
||||
+++ b/include/boost/atomic/capabilities.hpp
|
||||
@@ -142,6 +142,7 @@
|
||||
#define BOOST_ATOMIC_ADDRESS_LOCK_FREE BOOST_ATOMIC_POINTER_LOCK_FREE
|
||||
|
||||
#ifndef BOOST_ATOMIC_BOOL_LOCK_FREE
|
||||
+// We store bools in 1-byte storage in all backends
|
||||
#define BOOST_ATOMIC_BOOL_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
|
||||
#endif
|
||||
|
||||
diff --git a/include/boost/atomic/detail/atomic_template.hpp b/include/boost/atomic/detail/atomic_template.hpp
|
||||
index 4fd6d79..bc3922a 100644
|
||||
--- a/include/boost/atomic/detail/atomic_template.hpp
|
||||
+++ b/include/boost/atomic/detail/atomic_template.hpp
|
||||
@@ -234,7 +234,7 @@ class base_atomic< bool, int >
|
||||
{
|
||||
private:
|
||||
typedef bool value_type;
|
||||
- typedef atomics::detail::operations< storage_size_of< value_type >::value, false > operations;
|
||||
+ typedef atomics::detail::operations< 1u, false > operations;
|
||||
|
||||
protected:
|
||||
typedef value_type value_arg_type;
|
||||
diff --git a/include/boost/atomic/detail/caps_gcc_atomic.hpp b/include/boost/atomic/detail/caps_gcc_atomic.hpp
|
||||
index 8299ad0..f4e7a70 100644
|
||||
--- a/include/boost/atomic/detail/caps_gcc_atomic.hpp
|
||||
+++ b/include/boost/atomic/detail/caps_gcc_atomic.hpp
|
||||
@@ -29,66 +29,48 @@
|
||||
#define BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B 1
|
||||
#endif
|
||||
|
||||
-#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_FLAG_LOCK_FREE 2
|
||||
-#else
|
||||
-#define BOOST_ATOMIC_FLAG_LOCK_FREE 0
|
||||
-#endif
|
||||
-#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
|
||||
-#else
|
||||
-#define BOOST_ATOMIC_CHAR_LOCK_FREE 0
|
||||
-#endif
|
||||
-#if __GCC_ATOMIC_CHAR16_T_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2
|
||||
-#else
|
||||
-#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 0
|
||||
-#endif
|
||||
-#if __GCC_ATOMIC_CHAR32_T_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2
|
||||
+#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
|
||||
+#define BOOST_ATOMIC_INT128_LOCK_FREE 2
|
||||
#else
|
||||
-#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 0
|
||||
+#define BOOST_ATOMIC_INT128_LOCK_FREE 0
|
||||
#endif
|
||||
-#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
|
||||
+
|
||||
+#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
|
||||
+#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
|
||||
#else
|
||||
-#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
|
||||
+#define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT128_LOCK_FREE
|
||||
#endif
|
||||
-#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
|
||||
+
|
||||
+#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
|
||||
+#define BOOST_ATOMIC_LONG_LOCK_FREE 2
|
||||
#else
|
||||
-#define BOOST_ATOMIC_SHORT_LOCK_FREE 0
|
||||
+#define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_LLONG_LOCK_FREE
|
||||
#endif
|
||||
+
|
||||
#if __GCC_ATOMIC_INT_LOCK_FREE == 2
|
||||
#define BOOST_ATOMIC_INT_LOCK_FREE 2
|
||||
#else
|
||||
-#define BOOST_ATOMIC_INT_LOCK_FREE 0
|
||||
-#endif
|
||||
-#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_LONG_LOCK_FREE 2
|
||||
-#else
|
||||
-#define BOOST_ATOMIC_LONG_LOCK_FREE 0
|
||||
+#define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_LONG_LOCK_FREE
|
||||
#endif
|
||||
-#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
|
||||
+
|
||||
+#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
|
||||
+#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
|
||||
#else
|
||||
-#define BOOST_ATOMIC_LLONG_LOCK_FREE 0
|
||||
+#define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT_LOCK_FREE
|
||||
#endif
|
||||
-#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
|
||||
-#define BOOST_ATOMIC_INT128_LOCK_FREE 2
|
||||
+
|
||||
+#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
|
||||
+#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
|
||||
#else
|
||||
-#define BOOST_ATOMIC_INT128_LOCK_FREE 0
|
||||
+#define BOOST_ATOMIC_CHAR_LOCK_FREE BOOST_ATOMIC_SHORT_LOCK_FREE
|
||||
#endif
|
||||
+
|
||||
#if __GCC_ATOMIC_POINTER_LOCK_FREE == 2
|
||||
#define BOOST_ATOMIC_POINTER_LOCK_FREE 2
|
||||
#else
|
||||
#define BOOST_ATOMIC_POINTER_LOCK_FREE 0
|
||||
#endif
|
||||
-#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
|
||||
-#define BOOST_ATOMIC_BOOL_LOCK_FREE 2
|
||||
-#else
|
||||
-#define BOOST_ATOMIC_BOOL_LOCK_FREE 0
|
||||
-#endif
|
||||
+
|
||||
|
||||
#define BOOST_ATOMIC_INT8_LOCK_FREE BOOST_ATOMIC_CHAR_LOCK_FREE
|
||||
|
||||
@@ -128,6 +110,24 @@
|
||||
#define BOOST_ATOMIC_INT64_LOCK_FREE 0
|
||||
#endif
|
||||
|
||||
+
|
||||
+#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
|
||||
+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
|
||||
+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
|
||||
+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
|
||||
+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
|
||||
+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
|
||||
+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
|
||||
+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
|
||||
+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
|
||||
+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
|
||||
+#else
|
||||
+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
|
||||
+#endif
|
||||
+
|
||||
+#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
|
||||
+#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
|
||||
+
|
||||
#define BOOST_ATOMIC_THREAD_FENCE 2
|
||||
#define BOOST_ATOMIC_SIGNAL_FENCE 2
|
||||
|
||||
diff --git a/include/boost/atomic/detail/ops_gcc_atomic.hpp b/include/boost/atomic/detail/ops_gcc_atomic.hpp
|
||||
index 2297791..2e4c37b 100644
|
||||
--- a/include/boost/atomic/detail/ops_gcc_atomic.hpp
|
||||
+++ b/include/boost/atomic/detail/ops_gcc_atomic.hpp
|
||||
@@ -24,6 +24,15 @@
|
||||
#include <boost/atomic/detail/ops_cas_based.hpp>
|
||||
#endif
|
||||
|
||||
+#if __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE || __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE ||\
|
||||
+ __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE || __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE ||\
|
||||
+ __GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE || __GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE ||\
|
||||
+ __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE
|
||||
+// There are platforms where we need to use larger storage types
|
||||
+#include <boost/atomic/detail/int_sizes.hpp>
|
||||
+#include <boost/atomic/detail/ops_extending_cas_based.hpp>
|
||||
+#endif
|
||||
+
|
||||
#ifdef BOOST_HAS_PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
@@ -154,73 +163,206 @@ struct gcc_atomic_operations
|
||||
}
|
||||
};
|
||||
|
||||
-#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
|
||||
+#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
|
||||
+#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
|
||||
+
|
||||
+// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
|
||||
+// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
|
||||
template< bool Signed >
|
||||
-struct operations< 1u, Signed > :
|
||||
- public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
|
||||
+struct operations< 16u, Signed > :
|
||||
+ public cas_based_operations< gcc_dcas_x86_64< Signed > >
|
||||
{
|
||||
};
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 16u, Signed > :
|
||||
+ public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
-#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
|
||||
+
|
||||
+#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
|
||||
+#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
|
||||
+
|
||||
+// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
|
||||
template< bool Signed >
|
||||
-struct operations< 2u, Signed > :
|
||||
- public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
|
||||
+struct operations< 8u, Signed > :
|
||||
+ public cas_based_operations< gcc_dcas_x86< Signed > >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#elif (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
|
||||
+
|
||||
+#define BOOST_ATOMIC_DETAIL_INT64_EXTENDED
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 8u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 8u, Signed >
|
||||
{
|
||||
};
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 8u, Signed > :
|
||||
+ public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
#if BOOST_ATOMIC_INT32_LOCK_FREE > 0
|
||||
+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
|
||||
+
|
||||
+#define BOOST_ATOMIC_DETAIL_INT32_EXTENDED
|
||||
+
|
||||
+#if !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 4u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 4u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#else // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 4u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 4u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#endif // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
|
||||
+
|
||||
+#else
|
||||
+
|
||||
template< bool Signed >
|
||||
struct operations< 4u, Signed > :
|
||||
public gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >
|
||||
{
|
||||
};
|
||||
+
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
-#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
|
||||
-#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
|
||||
+#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
|
||||
+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
|
||||
+
|
||||
+#define BOOST_ATOMIC_DETAIL_INT16_EXTENDED
|
||||
+
|
||||
+#if !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
|
||||
|
||||
-// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
|
||||
template< bool Signed >
|
||||
-struct operations< 8u, Signed > :
|
||||
- public cas_based_operations< gcc_dcas_x86< Signed > >
|
||||
+struct operations< 2u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 2u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 2u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 2u, Signed >
|
||||
{
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
template< bool Signed >
|
||||
-struct operations< 8u, Signed > :
|
||||
- public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
|
||||
+struct operations< 2u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 2u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 2u, Signed > :
|
||||
+ public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
|
||||
{
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
|
||||
-#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
|
||||
+#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
|
||||
+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
|
||||
+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE) ||\
|
||||
+ (__GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE) ||\
|
||||
+ (__GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE)
|
||||
+
|
||||
+#if !defined(BOOST_ATOMIC_DETAIL_INT16_EXTENDED)
|
||||
|
||||
-// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
|
||||
-// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
|
||||
template< bool Signed >
|
||||
-struct operations< 16u, Signed > :
|
||||
- public cas_based_operations< gcc_dcas_x86_64< Signed > >
|
||||
+struct operations< 1u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >, 1u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#elif !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 1u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 1u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 1u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 1u, Signed >
|
||||
{
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
template< bool Signed >
|
||||
-struct operations< 16u, Signed > :
|
||||
- public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
|
||||
+struct operations< 1u, Signed > :
|
||||
+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 1u, Signed >
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+template< bool Signed >
|
||||
+struct operations< 1u, Signed > :
|
||||
+ public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
|
||||
{
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#undef BOOST_ATOMIC_DETAIL_INT16_EXTENDED
|
||||
+#undef BOOST_ATOMIC_DETAIL_INT32_EXTENDED
|
||||
+#undef BOOST_ATOMIC_DETAIL_INT64_EXTENDED
|
||||
+
|
||||
BOOST_FORCEINLINE void thread_fence(memory_order order) BOOST_NOEXCEPT
|
||||
{
|
||||
__atomic_thread_fence(atomics::detail::convert_memory_order_to_gcc(order));
|
@ -1,233 +0,0 @@
|
||||
diff --git a/boost/fusion/adapted/struct/detail/define_struct.hpp b/boost/fusion/adapted/struct/detail/define_struct.hpp
|
||||
index 2554292..ce3737e 100644
|
||||
--- a/boost/fusion/adapted/struct/detail/define_struct.hpp
|
||||
+++ b/boost/fusion/adapted/struct/detail/define_struct.hpp
|
||||
@@ -69,7 +69,7 @@
|
||||
ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
|
||||
\
|
||||
template<typename Seq> \
|
||||
- BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
self_type& \
|
||||
operator=(Seq const& seq) \
|
||||
{ \
|
||||
@@ -128,7 +128,7 @@
|
||||
ATTRIBUTE_TUPEL_SIZE, \
|
||||
ATTRIBUTES_SEQ) \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
NAME() \
|
||||
: BOOST_PP_SEQ_FOR_EACH_I_R( \
|
||||
1, \
|
||||
@@ -137,7 +137,7 @@
|
||||
ATTRIBUTES_SEQ) \
|
||||
{} \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
NAME(self_type const& other_self) \
|
||||
: BOOST_PP_SEQ_FOR_EACH_I_R( \
|
||||
1, \
|
||||
@@ -147,7 +147,7 @@
|
||||
{} \
|
||||
\
|
||||
template<typename Seq> \
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
NAME(Seq const& seq \
|
||||
BOOST_PP_IF( \
|
||||
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)), \
|
||||
@@ -167,7 +167,7 @@
|
||||
#define BOOST_FUSION_DEFINE_STRUCT_CTOR_1( \
|
||||
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
explicit \
|
||||
NAME(boost::call_traits< \
|
||||
BOOST_PP_TUPLE_ELEM( \
|
||||
@@ -180,7 +180,7 @@
|
||||
#define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_1( \
|
||||
TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
explicit \
|
||||
NAME(typename boost::call_traits< \
|
||||
typename boost::fusion::detail::get_first_arg< \
|
||||
@@ -217,7 +217,7 @@
|
||||
#define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_N( \
|
||||
TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
|
||||
1, \
|
||||
BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_ARG_I, \
|
||||
@@ -245,7 +245,7 @@
|
||||
#define BOOST_FUSION_DEFINE_STRUCT_CTOR_N( \
|
||||
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
|
||||
1, \
|
||||
BOOST_FUSION_DEFINE_STRUCT_CTOR_ARG_I, \
|
||||
diff --git a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
|
||||
index a5a3ae0..a037ffe 100644
|
||||
--- a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
|
||||
+++ b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
|
||||
@@ -66,7 +66,7 @@
|
||||
#define BOOST_FUSION_IGNORE_2(ARG1, ARG2)
|
||||
|
||||
#define BOOST_FUSION_MAKE_COPY_CONSTRUCTOR(NAME, ATTRIBUTES_SEQ) \
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
NAME(BOOST_PP_SEQ_FOR_EACH_I( \
|
||||
BOOST_FUSION_MAKE_CONST_REF_PARAM, \
|
||||
~, \
|
||||
@@ -337,7 +337,7 @@
|
||||
typedef boost::mpl::int_<N> index; \
|
||||
typedef boost_fusion_detail_Seq sequence_type; \
|
||||
\
|
||||
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
|
||||
+ BOOST_FUSION_GPU_ENABLED \
|
||||
BOOST_FUSION_ITERATOR_NAME(NAME)(boost_fusion_detail_Seq& seq) \
|
||||
: seq_(seq) \
|
||||
BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES( \
|
||||
diff --git a/libs/fusion/test/sequence/adapt_struct.cpp b/libs/fusion/test/sequence/adapt_struct.cpp
|
||||
index c0cd304..121827f 100644
|
||||
--- a/libs/fusion/test/sequence/adapt_struct.cpp
|
||||
+++ b/libs/fusion/test/sequence/adapt_struct.cpp
|
||||
@@ -67,6 +67,17 @@ namespace ns
|
||||
foo foo_;
|
||||
int y;
|
||||
};
|
||||
+
|
||||
+
|
||||
+ // Testing non-constexpr compatible types
|
||||
+ struct employee {
|
||||
+ std::string name;
|
||||
+ std::string nickname;
|
||||
+
|
||||
+ employee(std::string name, std::string nickname)
|
||||
+ : name(name), nickname(nickname)
|
||||
+ {}
|
||||
+ };
|
||||
}
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
@@ -96,6 +107,13 @@ namespace ns
|
||||
y
|
||||
)
|
||||
|
||||
+ BOOST_FUSION_ADAPT_STRUCT(
|
||||
+ ns::employee,
|
||||
+ name,
|
||||
+ nickname
|
||||
+ )
|
||||
+
|
||||
+
|
||||
#else // BOOST_PP_VARIADICS
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
@@ -123,6 +141,12 @@ namespace ns
|
||||
(BOOST_FUSION_ADAPT_AUTO, y)
|
||||
)
|
||||
|
||||
+ BOOST_FUSION_ADAPT_STRUCT(
|
||||
+ ns::employee,
|
||||
+ (std::string, name)
|
||||
+ (BOOST_FUSION_ADAPT_AUTO, nickname)
|
||||
+ )
|
||||
+
|
||||
#endif
|
||||
|
||||
int
|
||||
@@ -224,6 +248,15 @@ main()
|
||||
BOOST_TEST(v2 >= v1);
|
||||
}
|
||||
|
||||
+ {
|
||||
+ ns::employee emp("John Doe", "jdoe");
|
||||
+ std::cout << at_c<0>(emp) << std::endl;
|
||||
+ std::cout << at_c<1>(emp) << std::endl;
|
||||
+
|
||||
+ fusion::vector<std::string, std::string> v1("John Doe", "jdoe");
|
||||
+ BOOST_TEST(emp == v1);
|
||||
+ }
|
||||
+
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
diff --git a/libs/fusion/test/sequence/define_struct.cpp b/libs/fusion/test/sequence/define_struct.cpp
|
||||
index 795fdf6..63b5a19 100644
|
||||
--- a/libs/fusion/test/sequence/define_struct.cpp
|
||||
+++ b/libs/fusion/test/sequence/define_struct.cpp
|
||||
@@ -26,6 +26,14 @@ BOOST_FUSION_DEFINE_STRUCT(
|
||||
|
||||
BOOST_FUSION_DEFINE_STRUCT(BOOST_PP_EMPTY(), s, (int, m))
|
||||
|
||||
+// Testing non-constexpr compatible types
|
||||
+BOOST_FUSION_DEFINE_STRUCT(
|
||||
+ (ns),
|
||||
+ employee,
|
||||
+ (std::string, name)
|
||||
+ (std::string, nickname)
|
||||
+)
|
||||
+
|
||||
int
|
||||
main()
|
||||
{
|
||||
@@ -100,6 +108,14 @@ main()
|
||||
BOOST_TEST(p == make_vector(3,5));
|
||||
}
|
||||
|
||||
+ {
|
||||
+ ns::employee emp = make_list("John Doe", "jdoe");
|
||||
+ std::cout << at_c<0>(emp) << std::endl;
|
||||
+ std::cout << at_c<1>(emp) << std::endl;
|
||||
+
|
||||
+ BOOST_TEST(emp == make_vector("John Doe", "jdoe"));
|
||||
+ }
|
||||
+
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
diff --git a/libs/fusion/test/sequence/define_struct_inline.cpp b/libs/fusion/test/sequence/define_struct_inline.cpp
|
||||
index e849ce9..d34a142 100644
|
||||
--- a/libs/fusion/test/sequence/define_struct_inline.cpp
|
||||
+++ b/libs/fusion/test/sequence/define_struct_inline.cpp
|
||||
@@ -41,6 +41,13 @@ namespace ns
|
||||
BOOST_FUSION_DEFINE_STRUCT_INLINE(s, (int, m))
|
||||
|
||||
BOOST_FUSION_DEFINE_STRUCT_INLINE(empty_struct, )
|
||||
+
|
||||
+ // Testing non-constexpr compatible types
|
||||
+ BOOST_FUSION_DEFINE_STRUCT_INLINE(
|
||||
+ employee,
|
||||
+ (std::string, name)
|
||||
+ (std::string, nickname)
|
||||
+ )
|
||||
}
|
||||
|
||||
template <typename Point>
|
||||
@@ -128,6 +135,17 @@ main()
|
||||
{
|
||||
run_test<cls::point>(); // test with non-template enclosing class
|
||||
run_test<tpl_cls<>::point>(); // test with template enclosing class
|
||||
+
|
||||
+ {
|
||||
+ using namespace boost::fusion;
|
||||
+
|
||||
+ ns::employee emp = make_list("John Doe", "jdoe");
|
||||
+ std::cout << at_c<0>(emp) << std::endl;
|
||||
+ std::cout << at_c<1>(emp) << std::endl;
|
||||
+
|
||||
+ BOOST_TEST(emp == make_vector("John Doe", "jdoe"));
|
||||
+ }
|
||||
+
|
||||
return boost::report_errors();
|
||||
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
From f2c465ffa508459216f7093bf95ba001ad994206 Mon Sep 17 00:00:00 2001
|
||||
From: vslashg <veloso@verylowsodium.com>
|
||||
Date: Mon, 29 Feb 2016 13:33:35 -0500
|
||||
Subject: [PATCH] Fix auto-pointer registration in Boost Python 1.60.
|
||||
|
||||
The conditional instantiation magic of maybe_register_pointer_to_python() assumes that use_value_holder and use_back_reference will be one of the boost::mpl::bool_ types, but this assumption is no longer true in Boost 1.60, where they can be standard library bool wrappers instead.
|
||||
|
||||
Explicitly defining these types as mpl::bool_ classes fixes https://github.com/boostorg/python/issues/56.
|
||||
---
|
||||
boost/python/object/class_metadata.hpp | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/boost/python/object/class_metadata.hpp b/boost/python/object/class_metadata.hpp
|
||||
index c71cf67..5009c17 100644
|
||||
--- a/boost/python/object/class_metadata.hpp
|
||||
+++ b/boost/python/object/class_metadata.hpp
|
||||
@@ -164,7 +164,7 @@ struct class_metadata
|
||||
>::type held_type;
|
||||
|
||||
// Determine if the object will be held by value
|
||||
- typedef is_convertible<held_type*,T*> use_value_holder;
|
||||
+ typedef mpl::bool_<is_convertible<held_type*,T*>::value> use_value_holder;
|
||||
|
||||
// Compute the "wrapped type", that is, if held_type is a smart
|
||||
// pointer, we're talking about the pointee.
|
||||
@@ -175,10 +175,12 @@ struct class_metadata
|
||||
>::type wrapped;
|
||||
|
||||
// Determine whether to use a "back-reference holder"
|
||||
- typedef mpl::or_<
|
||||
- has_back_reference<T>
|
||||
- , is_same<held_type_arg,T>
|
||||
- , is_base_and_derived<T,wrapped>
|
||||
+ typedef mpl::bool_<
|
||||
+ mpl::or_<
|
||||
+ has_back_reference<T>
|
||||
+ , is_same<held_type_arg,T>
|
||||
+ , is_base_and_derived<T,wrapped>
|
||||
+ >::value
|
||||
> use_back_reference;
|
||||
|
||||
// Select the holder.
|
@ -1,42 +0,0 @@
|
||||
From: jzmaddock <john@johnmaddock.co.uk>
|
||||
Date: Tue, 21 Jul 2015 18:54:48 +0100
|
||||
Subject: [PATCH] Remove deprecated type_traits usage.
|
||||
|
||||
---
|
||||
include/boost/graph/adjacency_matrix.hpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/boost/graph/adjacency_matrix.hpp b/include/boost/graph/adjacency_matrix.hpp
|
||||
index b1078d9..ade7351 100644
|
||||
--- a/boost/graph/adjacency_matrix.hpp
|
||||
+++ b/boost/graph/adjacency_matrix.hpp
|
||||
@@ -443,7 +443,7 @@ namespace boost {
|
||||
// graph type. Instead, use directedS, which also provides the
|
||||
// functionality required for a Bidirectional Graph (in_edges,
|
||||
// in_degree, etc.).
|
||||
- BOOST_STATIC_ASSERT(type_traits::ice_not<(is_same<Directed, bidirectionalS>::value)>::value);
|
||||
+ BOOST_STATIC_ASSERT(!(is_same<Directed, bidirectionalS>::value));
|
||||
|
||||
typedef typename mpl::if_<is_directed,
|
||||
bidirectional_tag, undirected_tag>::type
|
||||
From: Vladimir Prus <vladimir.prus@gmail.com>
|
||||
Date: Mon, 7 Dec 2015 13:55:07 +0300
|
||||
Subject: [PATCH] Add missing include of <list>.
|
||||
|
||||
Thanks to Amit Prakash Ambasta for the report.
|
||||
---
|
||||
include/boost/graph/r_c_shortest_paths.hpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/include/boost/graph/r_c_shortest_paths.hpp b/include/boost/graph/r_c_shortest_paths.hpp
|
||||
index afa50cf..7e490fc 100644
|
||||
--- a/boost/graph/r_c_shortest_paths.hpp
|
||||
+++ b/boost/graph/r_c_shortest_paths.hpp
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <map>
|
||||
#include <queue>
|
||||
#include <vector>
|
||||
+#include <list>
|
||||
|
||||
#include <boost/graph/graph_traits.hpp>
|
||||
#include <boost/graph/iteration_macros.hpp>
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install preinst prepare setup test
|
||||
DEPEND=abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] ) icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost =dev-util/boost-build-1.56*
|
||||
DESCRIPTION=Boost Libraries for C++
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.boost.org/
|
||||
IUSE=context debug doc icu +nls mpi python static-libs +threads tools python_targets_python2_7 python_targets_python3_4 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=Boost-1.0
|
||||
RDEPEND=abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] ) icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost
|
||||
REQUIRED_USE=mpi? ( threads ) python? ( || ( python_targets_python2_7 python_targets_python3_4 ) )
|
||||
RESTRICT=test
|
||||
SLOT=0/1.56.0
|
||||
SRC_URI=mirror://sourceforge/boost/boost_1_56_0.tar.bz2
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 9c113d6a64826c40154cad7be15d95ea flag-o-matic 61cad4fb5d800b29d484b27cb033f59b ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 multiprocessing 284a473719153462f3e974d86c8cb81c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 8fec6b1eb195836560e70b66d98fb163 versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=c98f16e1a14c91b7896126079bf6dd83
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install preinst prepare setup test
|
||||
DEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost =dev-util/boost-build-1.58*
|
||||
DESCRIPTION=Boost Libraries for C++
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.boost.org/
|
||||
IUSE=context debug doc icu +nls mpi python static-libs +threads tools python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=Boost-1.0
|
||||
RDEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost
|
||||
REQUIRED_USE=mpi? ( threads ) python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 ) )
|
||||
RESTRICT=test
|
||||
SLOT=0/1.58.0
|
||||
SRC_URI=mirror://sourceforge/boost/boost_1_58_0.tar.bz2
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 9c113d6a64826c40154cad7be15d95ea flag-o-matic 61cad4fb5d800b29d484b27cb033f59b ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 multiprocessing 284a473719153462f3e974d86c8cb81c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 8fec6b1eb195836560e70b66d98fb163 versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=e0390d141834c01470184c95e3cf271a
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install preinst prepare setup test
|
||||
DEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost =dev-util/boost-build-1.59*
|
||||
DESCRIPTION=Boost Libraries for C++
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.boost.org/
|
||||
IUSE=context debug doc icu +nls mpi python static-libs +threads tools python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=Boost-1.0
|
||||
RDEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost
|
||||
REQUIRED_USE=mpi? ( threads ) python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 ) )
|
||||
RESTRICT=test
|
||||
SLOT=0/1.59.0
|
||||
SRC_URI=mirror://sourceforge/boost/boost_1_59_0.tar.bz2
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 9c113d6a64826c40154cad7be15d95ea flag-o-matic 61cad4fb5d800b29d484b27cb033f59b ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 multiprocessing 284a473719153462f3e974d86c8cb81c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 8fec6b1eb195836560e70b66d98fb163 versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=6f45cd8483776ace3ea2fe8ced29ae8e
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install preinst prepare setup test
|
||||
DEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost =dev-util/boost-build-1.60*
|
||||
DESCRIPTION=Boost Libraries for C++
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.boost.org/
|
||||
IUSE=context debug doc icu +nls mpi python static-libs +threads tools python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=Boost-1.0
|
||||
RDEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost
|
||||
REQUIRED_USE=mpi? ( threads ) python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 ) )
|
||||
RESTRICT=test
|
||||
SLOT=0/1.60.0
|
||||
SRC_URI=mirror://sourceforge/boost/boost_1_60_0.tar.bz2
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 9c113d6a64826c40154cad7be15d95ea flag-o-matic 61cad4fb5d800b29d484b27cb033f59b ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 multiprocessing 284a473719153462f3e974d86c8cb81c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 8fec6b1eb195836560e70b66d98fb163 versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=6f06a7aa3339db80d41b4e8cc38e8ee4
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install preinst prepare setup test
|
||||
DEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost =dev-util/boost-build-1.61*
|
||||
DESCRIPTION=Boost Libraries for C++
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.boost.org/
|
||||
IUSE=context debug doc icu +nls mpi python static-libs +threads tools python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=Boost-1.0
|
||||
RDEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( virtual/mpi[cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost
|
||||
REQUIRED_USE=mpi? ( threads ) python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 ) )
|
||||
RESTRICT=test
|
||||
SLOT=0/1.61.0
|
||||
SRC_URI=mirror://sourceforge/boost/boost_1_61_0.tar.bz2
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 9c113d6a64826c40154cad7be15d95ea flag-o-matic 61cad4fb5d800b29d484b27cb033f59b ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 multiprocessing 284a473719153462f3e974d86c8cb81c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 8fec6b1eb195836560e70b66d98fb163 versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=412b2e2143ccec2186ae6b778aaf086c
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install preinst prepare setup test
|
||||
DEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( >=virtual/mpi-2.0-r4[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost =dev-util/boost-build-1.61*
|
||||
DESCRIPTION=Boost Libraries for C++
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.boost.org/
|
||||
IUSE=context debug doc icu +nls mpi python static-libs +threads tools python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt
|
||||
LICENSE=Boost-1.0
|
||||
RDEPEND=icu? ( >=dev-libs/icu-3.6:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !icu? ( virtual/libiconv[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) mpi? ( >=virtual/mpi-2.0-r4[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,cxx,threads] ) python? ( python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] ) app-arch/bzip2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-admin/eselect-boost
|
||||
REQUIRED_USE=mpi? ( threads ) python? ( || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 ) )
|
||||
RESTRICT=test
|
||||
SLOT=0/1.61.0
|
||||
SRC_URI=mirror://sourceforge/boost/boost_1_61_0.tar.bz2
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 9c113d6a64826c40154cad7be15d95ea flag-o-matic 61cad4fb5d800b29d484b27cb033f59b ltprune 2770eed66a9b8ef944714cd0e968182e multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multilib-build eed53a6313267c9fbcd35fc384bd0087 multilib-minimal 9139c3a57e077cb8e0d0f73ceb080b89 multiprocessing 284a473719153462f3e974d86c8cb81c python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 8fec6b1eb195836560e70b66d98fb163 versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=35f5917dfba777af69e6128ab0a3f373
|
Loading…
Reference in New Issue
Block a user