void-packages/srcpkgs/boost/template

456 lines
11 KiB
Bash

# Template file for 'boost'
pkgname=boost
version=1.80.0
revision=3
wrksrc="${pkgname}_${version//\./_}"
hostmakedepends="which bzip2-devel icu-devel python3-devel pkg-config"
makedepends="zlib-devel bzip2-devel icu-devel python3-devel liblzma-devel
libzstd-devel"
short_desc="Free peer-reviewed portable C++ source libraries"
maintainer="John <me@johnnynator.dev>"
license="BSL-1.0"
homepage="http://www.boost.org/"
distfiles="https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${version//./_}.tar.bz2"
checksum=1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0
python_version=3
replaces="libboost_program_options1.72>=0 libboost_math_c99f1.72>=0
libboost_stacktrace_basic1.72>=0 libboost_stacktrace_noop1.72>=0
libboost_iostreams1.72>=0 libboost_math_tr1l1.72>=0 libboost_filesystem1.72>=0
libboost_chrono1.72>=0 libboost_math_tr1f1.72>=0 libboost_wave1.72>=0
libboost_graph1.72>=0 libboost_locale1.72>=0 libboost_regex1.72>=0
libboost_fiber1.72>=0 libboost_type_erasure1.72>=0 libboost_coroutine1.72>=0
libboost_atomic1.72>=0 libboost_prg_exec_monitor1.72>=0 libboost_math_c991.72>=0
boost-python3-1.72>=0 libboost_log_setup1.72>=0
libboost_timer1.72>=0 libboost_system1.72>=0 libboost_unit_test_framework1.72>=0
libboost_serialization1.72>=0 libboost_math_tr11.72>=0
libboost_math_c99l1.72>=0 boost-python1.72>=0 libboost_contract1.72>=0
libboost_date_time1.72>=0 libboost_log1.72>=0 libboost_random1.72>=0
libboost_thread1.72>=0 libboost_container1.72>=0
libboost_wserialization1.72>=0 libboost_context1.72>=0
libboost_stacktrace_addr2line1.72>=0"
subpackages="libboost_program_options1.80 libboost_math_c99f1.80
libboost_stacktrace_basic1.80 libboost_stacktrace_noop1.80
libboost_iostreams1.80 libboost_filesystem1.80
libboost_chrono1.80 libboost_math_tr1f1.80 libboost_wave1.80
libboost_graph1.80 libboost_locale1.80 libboost_regex1.80
libboost_fiber1.80 libboost_type_erasure1.80 libboost_coroutine1.80
libboost_atomic1.80 libboost_prg_exec_monitor1.80 libboost_math_c991.80
boost-python3-1.80 libboost_log_setup1.80 boost-devel libboost_json1.80
libboost_timer1.80 libboost_system1.80 libboost_unit_test_framework1.80
libboost_serialization1.80 libboost_math_tr11.80 boost-build
libboost_contract1.80 libboost_nowide1.80
libboost_date_time1.80 libboost_log1.80 libboost_random1.80
libboost_thread1.80 libboost_container1.80 boost-jam
libboost_wserialization1.80 libboost_context1.80"
# on glibc ppc, boost.math disables long double stuff because of
# non-ieee754-conforming long double type (IBM double-double)
#
# this does not affect musl (where long double is 64-bit)
#
case "$XBPS_TARGET_MACHINE" in
ppc64le|ppc64|ppc|ppcle) ;;
*) subpackages+=" libboost_math_c99l1.80 libboost_math_tr1l1.80";;
esac
if [ -z "$CROSS_BUILD" ]; then
subpackages+=" libboost_stacktrace_addr2line1.80"
fi
case "$XBPS_TARGET_MACHINE" in
i686*) _arch=x86; _abi=sysv ;;
x86_64*) _arch=x86; _abi=sysv ;;
arm*) _arch=arm; _abi=aapcs ;;
aarch64*) _arch=arm; _abi=aapcs ;;
mips*) _arch=mips32r2; _abi=o32 ;;
ppc*) _arch=power; _abi=sysv ;;
esac
do_build() {
# bootstrap.sh will reset CXX and CXXFLAGS (L229)
./bootstrap.sh --with-toolset=gcc \
--prefix=${DESTDIR}/usr --with-python=/usr/bin/python3 \
--with-python-root=${XBPS_CROSS_BASE}/usr
(
# Rebuild bjam for target
cd tools/build/src/engine
CXXFLAGS="$CXXFLAGS -fdebug-prefix-map=$PWD=."
# toolset gcc will force gcc -x c++ -O2 -s
# toolset cxx will use CXX and CXXFLAGS
CXX_VERSION_OPT=--version ./build.sh cxx
)
cat > user-config.jam <<-__EOF
using gcc : : ${CXX} : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
using python : ${py3_ver} : /usr/bin/python3 : ${XBPS_CROSS_BASE}/${py3_inc} : ${XBPS_CROSS_BASE}/${py3_lib} ;
__EOF
./b2 ${makejobs} \
--user-config=${wrksrc}/user-config.jam --debug-building \
--toolset=gcc abi=${_abi} architecture=${_arch} python=${py3_ver} \
threading=multi runtime-link=shared link=shared,static
}
do_install() {
# Install bjam
# XXX: make bjam a symlink to b2
for _b in b2; do
vbin tools/build/src/engine/${_b}
done
ln -sf b2 "$DESTDIR/usr/bin/bjam"
# Install headers/libs
./b2 --prefix=${DESTDIR}/usr abi=${_abi} architecture=${_arch} \
--user-config=${wrksrc}/user-config.jam \
python=${py3_ver} threading=multi runtime-link=shared link=shared,static \
install
# Install Boost.Build stuff.
vmkdir usr/share/boost-build
cd ${wrksrc}/tools/build && cp -a . ${DESTDIR}/usr/share/boost-build
find ${DESTDIR}/usr/share/boost-build \
-type f -name \*.orig -exec rm -f {} \;
rm -rf ${DESTDIR}/usr/share/boost-build/src/engine/bootstrap
rm -rf ${DESTDIR}/usr/share/boost-build/src/engine/{b2,bjam}
( echo '# System wide configuration file for Boost.Build.' ; \
echo ; \
echo 'using gcc ;' ; ) >${wrksrc}/site-config.jam
cd $wrksrc
vconf site-config.jam
# license
vlicense LICENSE_1_0.txt
}
boost-jam_package() {
short_desc+=" - Boost.Jam utility"
depends="boost-build>=${version}_${revision}"
pkg_install() {
vmove usr/bin/bjam
vmove usr/bin/b2
}
}
boost-python3-1.80_package() {
depends="boost python3"
replaces="boost-python3>=0"
short_desc+=" - Python3 bindings"
pkg_install() {
vmove "usr/lib/libboost_python3*.so.*"
}
}
boost-build_package() {
conf_files="/etc/site-config.jam"
short_desc+=" - Boost.Build framework"
pkg_install() {
vmove usr/share/boost-build
vmove etc/site-config.jam
}
}
boost-devel_package() {
noverifyrdeps=yes
depends="boost ${subpackages/boost-devel}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/lib/cmake
vmove "usr/lib/*.a"
vmove "usr/lib/*.so"
}
}
libboost_atomic1.80_package() {
depends="boost"
short_desc+=" - libboost_atomic"
pkg_install() {
vmove usr/lib/libboost_atomic.so.*
}
}
libboost_chrono1.80_package() {
depends="boost"
short_desc+=" - libboost_chrono"
pkg_install() {
vmove usr/lib/libboost_chrono.so.*
}
}
libboost_container1.80_package() {
depends="boost"
short_desc+=" - libboost_container"
pkg_install() {
vmove usr/lib/libboost_container.so.*
}
}
libboost_context1.80_package() {
depends="boost"
short_desc+=" - libboost_context"
pkg_install() {
vmove usr/lib/libboost_context.so.*
}
}
libboost_contract1.80_package() {
depends="boost"
short_desc+=" - libboost_contract"
pkg_install() {
vmove usr/lib/libboost_contract.so.*
}
}
libboost_coroutine1.80_package() {
depends="boost"
short_desc+=" - libboost_coroutine"
pkg_install() {
vmove usr/lib/libboost_coroutine.so.*
}
}
libboost_date_time1.80_package() {
depends="boost"
short_desc+=" - libboost_date_time"
pkg_install() {
vmove usr/lib/libboost_date_time.so.*
}
}
libboost_fiber1.80_package() {
depends="boost"
short_desc+=" - libboost_fiber"
pkg_install() {
vmove usr/lib/libboost_fiber.so.*
}
}
libboost_filesystem1.80_package() {
depends="boost"
short_desc+=" - libboost_filesystem"
pkg_install() {
vmove usr/lib/libboost_filesystem.so.*
}
}
libboost_graph1.80_package() {
depends="boost"
short_desc+=" - libboost_graph"
pkg_install() {
vmove usr/lib/libboost_graph.so.*
}
}
libboost_iostreams1.80_package() {
depends="boost"
short_desc+=" - libboost_iostreams"
pkg_install() {
vmove usr/lib/libboost_iostreams.so.*
}
}
libboost_locale1.80_package() {
depends="boost"
short_desc+=" - libboost_locale"
pkg_install() {
vmove usr/lib/libboost_locale.so.*
}
}
libboost_log1.80_package() {
depends="boost"
short_desc+=" - libboost_log"
pkg_install() {
vmove usr/lib/libboost_log.so.*
}
}
libboost_log_setup1.80_package() {
depends="boost"
short_desc+=" - libboost_log_setup"
pkg_install() {
vmove usr/lib/libboost_log_setup.so.*
}
}
libboost_math_c991.80_package() {
depends="boost"
short_desc+=" - libboost_math_c99"
pkg_install() {
vmove usr/lib/libboost_math_c99.so.*
}
}
libboost_math_c99f1.80_package() {
depends="boost"
short_desc+=" - libboost_math_c99f"
pkg_install() {
vmove usr/lib/libboost_math_c99f.so.*
}
}
libboost_math_c99l1.80_package() {
depends="boost"
short_desc+=" - libboost_math_c99l"
pkg_install() {
vmove usr/lib/libboost_math_c99l.so.*
}
}
libboost_json1.80_package() {
depends="boost"
short_desc+=" - libboost_json"
pkg_install() {
vmove usr/lib/libboost_json.so.*
}
}
libboost_math_tr11.80_package() {
depends="boost"
short_desc+=" - libboost_math_tr1"
pkg_install() {
vmove usr/lib/libboost_math_tr1.so.*
}
}
libboost_math_tr1f1.80_package() {
depends="boost"
short_desc+=" - libboost_math_tr1f"
pkg_install() {
vmove usr/lib/libboost_math_tr1f.so.*
}
}
libboost_math_tr1l1.80_package() {
depends="boost"
short_desc+=" - libboost_math_tr1l"
pkg_install() {
vmove usr/lib/libboost_math_tr1l.so.*
}
}
libboost_nowide1.80_package() {
depends="boost"
short_desc+=" - libboost_nowide"
pkg_install() {
vmove usr/lib/libboost_nowide.so.*
}
}
libboost_prg_exec_monitor1.80_package() {
depends="boost"
short_desc+=" - libboost_prg_exec_monitor"
pkg_install() {
vmove usr/lib/libboost_prg_exec_monitor.so.*
}
}
libboost_program_options1.80_package() {
depends="boost"
short_desc+=" - libboost_program_options"
pkg_install() {
vmove usr/lib/libboost_program_options.so.*
}
}
libboost_random1.80_package() {
depends="boost"
short_desc+=" - libboost_random"
pkg_install() {
vmove usr/lib/libboost_random.so.*
}
}
libboost_regex1.80_package() {
depends="boost"
short_desc+=" - libboost_regex"
pkg_install() {
vmove usr/lib/libboost_regex.so.*
}
}
libboost_serialization1.80_package() {
depends="boost"
short_desc+=" - libboost_serialization"
pkg_install() {
vmove usr/lib/libboost_serialization.so.*
}
}
libboost_stacktrace_addr2line1.80_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_addr2line"
pkg_install() {
vmove usr/lib/libboost_stacktrace_addr2line.so.*
}
}
libboost_stacktrace_basic1.80_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_basic"
pkg_install() {
vmove usr/lib/libboost_stacktrace_basic.so.*
}
}
libboost_stacktrace_noop1.80_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_noop"
pkg_install() {
vmove usr/lib/libboost_stacktrace_noop.so.*
}
}
libboost_system1.80_package() {
depends="boost"
short_desc+=" - libboost_system"
pkg_install() {
vmove usr/lib/libboost_system.so.*
}
}
libboost_thread1.80_package() {
depends="boost"
short_desc+=" - libboost_thread"
pkg_install() {
vmove usr/lib/libboost_thread.so.*
}
}
libboost_timer1.80_package() {
depends="boost"
short_desc+=" - libboost_timer"
pkg_install() {
vmove usr/lib/libboost_timer.so.*
}
}
libboost_type_erasure1.80_package() {
depends="boost"
short_desc+=" - libboost_type_erasure"
pkg_install() {
vmove usr/lib/libboost_type_erasure.so.*
}
}
libboost_unit_test_framework1.80_package() {
depends="boost"
short_desc+=" - libboost_unit_test_framework"
pkg_install() {
vmove usr/lib/libboost_unit_test_framework.so.*
}
}
libboost_wave1.80_package() {
depends="boost"
short_desc+=" - libboost_wave"
pkg_install() {
vmove usr/lib/libboost_wave.so.*
}
}
libboost_wserialization1.80_package() {
depends="boost"
short_desc+=" - libboost_wserialization"
pkg_install() {
vmove usr/lib/libboost_wserialization.so.*
}
}