From c77e67b04e6036ec43df34defb81469ad43a691a Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 17 Mar 2024 21:10:16 +0100 Subject: [PATCH] Update android boost packages to 1.84.0 --- boost/android-aarch64/PKGBUILD | 241 ++++++++++++++--------------- boost/android-armv7a-eabi/PKGBUILD | 241 ++++++++++++++--------------- boost/android-x86-64/PKGBUILD | 239 ++++++++++++++-------------- boost/android-x86/PKGBUILD | 239 ++++++++++++++-------------- 4 files changed, 466 insertions(+), 494 deletions(-) diff --git a/boost/android-aarch64/PKGBUILD b/boost/android-aarch64/PKGBUILD index 7a364dcf..12b909f0 100644 --- a/boost/android-aarch64/PKGBUILD +++ b/boost/android-aarch64/PKGBUILD @@ -3,153 +3,146 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. -_pkgname=boost -_pkg_arch=aarch64 -_android_arch=arm64-v8a -_boost_arch=arm -_boost_address_model=64 - -pkgname=android-$_pkg_arch-$_pkgname -pkgver=1.81.0 -_srcname=boost_${pkgver//./_} +_android_arch=aarch64 +pkgname=android-${_android_arch}-boost +pkgver=1.84.0 pkgrel=1 -url='https://www.boost.org/' +_srcname=boost_${pkgver//./_} arch=('any') +pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})" +url="https://www.boost.org/" license=('custom') -pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)" -depends=("android-$_pkg_arch-libiconv") -options=(!buildflags staticlibs !strip !emptydirs) -makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk' 'android-environment') -conflicts=("android-$_pkgname-$_android_arch") -replaces=("android-$_pkgname-$_android_arch") -source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz - boost-1.81.0-phoenix-multiple-definitions.patch - $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch - no-versioned-shlibs.patch - disable-version-check.patch) -sha256sums=('205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6' - '3ebf428ef6be090a7b56a233330375539ac429333b83708e28fe5db049cfecdb' - 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee' - 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23' - '63d12e7d703b471882608b4225c489f6a35ab425602783a4f9c4ea99a10f9c4b') +depends=("android-${_android_arch}-bzip2" + "android-${_android_arch}-icu" + "android-${_android_arch}-zlib" + "android-${_android_arch}-zstd") +makedepends=('android-environment') +if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then +makedepends+=("android-${_android_arch}-openmpi") +optdepends+=("android-${_android_arch}-openmpi: for mpi support") +fi +options=(!strip !buildflags staticlibs !emptydirs) +source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" + "boost-1.81.0-phoenix-multiple-definitions.patch" + "boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch" + "disable-version-check.patch") +md5sums=('9cbfb9076ed06384471802b850698a6d' + 'cb1c25777e9b85af62366e7c930244b8' + '991daf28f76ea0383620ccaf971decba' + '6290eb4fa0cab451aac92e12e85ef073') prepare() { - cd ${_srcname} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} + # https://github.com/boostorg/phoenix/issues/111 patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch # https://github.com/boostorg/ublas/pull/97 - patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch - - patch -i ../no-versioned-shlibs.patch + patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -p1 -i ../disable-version-check.patch } build() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})" - local target_flags=" \ - --target=${_pkg_arch}-linux-android$ANDROID_MINIMUM_PLATFORM --sysroot=$ANDROID_SYSROOT" - local common_flags=" \ - $target_flags \ - -fexceptions \ - -DANDROID \ - -O3 -DNDEBUG \ - -D_FORTIFY_SOURCE=2 -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -fPIC \ - -DBOOST_ASIO_HAS_STD_STRING_VIEW=1" - local ld_flags=" \ - $target_flags \ - -fexceptions" + # Platform specific patches + case "$_android_arch" in + aarch64) + _boost_arch=arm + _boost_address_model=64 + ;; + armv7a-eabi) + _boost_arch=arm + _boost_address_model=32 + ;; + x86) + _boost_arch=x86 + _boost_address_model=32 + ;; + x86-64) + _boost_arch=x86 + _boost_address_model=64 + ;; + *) + ;; + esac - cd ${_srcname} + ./bootstrap.sh -with-toolset=gcc - msg2 'Bootstrapping b2' - ./bootstrap.sh --with-toolset=gcc + # support for OpenMPI + if [[ _boost_address_model == 64 ]]; then + _boost_mpi='using mpi ;' + else + _boost_mpi='' + fi - install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2 + userConfigs=$srcdir/$_srcname/user-config.jam - # Support for OpenMPI - echo "using mpi ;" >> project-config.jam + cat << EOF > "${userConfigs}" +${_boost_mpi} +using clang : android : ${ANDROID_CXX} : +${ANDROID_AR} \ +${ANDROID_AS} +; +EOF - # boostbook is needed by quickbook - install -dm755 "${_stagedir}"/share/boostbook - cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/ - - # default "minimal" install: "release link=shared,static - # runtime-link=shared threading=single,multi" - # --layout=tagged will add the "-mt" suffix for multithreaded libraries - # and installs includes in $ANDROID_PREFIX/include/boost. - # --layout=system no longer adds the -mt suffix for multi-threaded libs. - # install to ${_stagedir} for consistency with regular boost package - msg2 'Invoking build via b2' - export PATH=$ANDROID_CROSS_PREFIX:$PATH - "${_stagedir}"/bin/b2 \ - --with-atomic \ - --with-chrono \ - --with-container \ - --with-date_time \ - --with-exception \ - --with-fiber \ - --with-filesystem \ - --with-graph \ - --with-graph_parallel \ - --with-iostreams \ - --with-locale \ - --with-log \ - --with-math \ - --with-mpi \ - --with-program_options \ - --with-random \ - --with-regex \ - --with-serialization \ - --with-system \ - --with-test \ - --with-thread \ - --with-timer \ - --with-type_erasure \ - --with-wave \ - --with-stacktrace \ - variant=release \ - debug-symbols=off \ - threading=multi \ - runtime-link=shared \ - link=shared,static \ - target-os=android \ - toolset=clang-android \ - architecture=$_boost_arch \ - address-model=$_boost_address_model \ - -sICONV_PATH="$ANDROID_PREFIX" \ - cflags="$common_flags" \ - cxxflags="$common_flags -frtti -std=gnu++17" \ - linkflags="$ld_flags" \ - --layout=system \ - ${jobs} \ - \ - --prefix="${_stagedir}" \ - install + ./b2 install \ + --prefix="$srcdir/fakeinstall" \ + --user-config="${userConfigs}" \ + --layout=system \ + --with-atomic \ + --with-chrono \ + --with-container \ + --with-date_time \ + --with-exception \ + --with-fiber \ + --with-filesystem \ + --with-graph \ + --with-graph_parallel \ + --with-iostreams \ + --with-locale \ + --with-log \ + --with-math \ + --with-mpi \ + --with-program_options \ + --with-random \ + --with-regex \ + --with-serialization \ + --with-system \ + --with-test \ + --with-thread \ + --with-timer \ + --with-type_erasure \ + --with-wave \ + --with-stacktrace \ + -sICONV_PATH="${ANDROID_PREFIX}" \ + variant=release \ + debug-symbols=off \ + runtime-link=shared \ + link=shared,static \ + target-os=android \ + toolset=clang-android \ + architecture=$_boost_arch \ + threading=multi \ + address-model=$_boost_address_model \ + cflags="${CXXFLAGS}" \ + cxxflags="${CFLAGS}" \ + linkflags="${LDFLAGS}" } package() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/{include,share} "${pkgdir}$ANDROID_PREFIX" + find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; + find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; - local libdir="${pkgdir}$ANDROID_PREFIX"/lib - install -d "${libdir}" - cp -a "${_stagedir}"/lib/*.a "${libdir}"/ + install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/lib "${pkgdir}$ANDROID_PREFIX" - - install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \ - "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE_1_0.txt - - find "${libdir}" -iname '*.a' -exec $ANDROID_STRIP -g {} \; - find "${libdir}" -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt } - -# vim: ts=2 sw=2 et: diff --git a/boost/android-armv7a-eabi/PKGBUILD b/boost/android-armv7a-eabi/PKGBUILD index 94df5ce1..1883f79e 100644 --- a/boost/android-armv7a-eabi/PKGBUILD +++ b/boost/android-armv7a-eabi/PKGBUILD @@ -3,153 +3,146 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. -_pkgname=boost -_pkg_arch=armv7a-eabi -_android_arch=armeabi-v7a -_boost_arch=arm -_boost_address_model=32 - -pkgname=android-$_pkg_arch-$_pkgname -pkgver=1.81.0 -_srcname=boost_${pkgver//./_} +_android_arch=armv7a-eabi +pkgname=android-${_android_arch}-boost +pkgver=1.84.0 pkgrel=1 -url='https://www.boost.org/' +_srcname=boost_${pkgver//./_} arch=('any') +pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})" +url="https://www.boost.org/" license=('custom') -pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)" -depends=("android-$_pkg_arch-libiconv") -options=(!buildflags staticlibs !strip !emptydirs) -makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk' 'android-environment') -conflicts=("android-$_pkgname-$_android_arch") -replaces=("android-$_pkgname-$_android_arch") -source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz - boost-1.81.0-phoenix-multiple-definitions.patch - $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch - no-versioned-shlibs.patch - disable-version-check.patch) -sha256sums=('205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6' - '3ebf428ef6be090a7b56a233330375539ac429333b83708e28fe5db049cfecdb' - 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee' - 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23' - '63d12e7d703b471882608b4225c489f6a35ab425602783a4f9c4ea99a10f9c4b') +depends=("android-${_android_arch}-bzip2" + "android-${_android_arch}-icu" + "android-${_android_arch}-zlib" + "android-${_android_arch}-zstd") +makedepends=('android-environment') +if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then +makedepends+=("android-${_android_arch}-openmpi") +optdepends+=("android-${_android_arch}-openmpi: for mpi support") +fi +options=(!strip !buildflags staticlibs !emptydirs) +source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" + "boost-1.81.0-phoenix-multiple-definitions.patch" + "boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch" + "disable-version-check.patch") +md5sums=('9cbfb9076ed06384471802b850698a6d' + 'cb1c25777e9b85af62366e7c930244b8' + '991daf28f76ea0383620ccaf971decba' + '6290eb4fa0cab451aac92e12e85ef073') prepare() { - cd ${_srcname} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} + # https://github.com/boostorg/phoenix/issues/111 patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch # https://github.com/boostorg/ublas/pull/97 - patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch - - patch -i ../no-versioned-shlibs.patch + patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -p1 -i ../disable-version-check.patch } build() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})" - local target_flags=" \ - --target=${_pkg_arch}-linux-android$ANDROID_MINIMUM_PLATFORM --sysroot=$ANDROID_SYSROOT" - local common_flags=" \ - $target_flags \ - -fexceptions \ - -DANDROID \ - -O3 -DNDEBUG \ - -D_FORTIFY_SOURCE=2 -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -fPIC \ - -DBOOST_ASIO_HAS_STD_STRING_VIEW=1" - local ld_flags=" \ - $target_flags \ - -fexceptions" + # Platform specific patches + case "$_android_arch" in + aarch64) + _boost_arch=arm + _boost_address_model=64 + ;; + armv7a-eabi) + _boost_arch=arm + _boost_address_model=32 + ;; + x86) + _boost_arch=x86 + _boost_address_model=32 + ;; + x86-64) + _boost_arch=x86 + _boost_address_model=64 + ;; + *) + ;; + esac - cd ${_srcname} + ./bootstrap.sh -with-toolset=gcc - msg2 'Bootstrapping b2' - ./bootstrap.sh --with-toolset=gcc + # support for OpenMPI + if [[ _boost_address_model == 64 ]]; then + _boost_mpi='using mpi ;' + else + _boost_mpi='' + fi - install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2 + userConfigs=$srcdir/$_srcname/user-config.jam - # Support for OpenMPI - echo "using mpi ;" >> project-config.jam + cat << EOF > "${userConfigs}" +${_boost_mpi} +using clang : android : ${ANDROID_CXX} : +${ANDROID_AR} \ +${ANDROID_AS} +; +EOF - # boostbook is needed by quickbook - install -dm755 "${_stagedir}"/share/boostbook - cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/ - - # default "minimal" install: "release link=shared,static - # runtime-link=shared threading=single,multi" - # --layout=tagged will add the "-mt" suffix for multithreaded libraries - # and installs includes in $ANDROID_PREFIX/include/boost. - # --layout=system no longer adds the -mt suffix for multi-threaded libs. - # install to ${_stagedir} for consistency with regular boost package - msg2 'Invoking build via b2' - export PATH=$ANDROID_CROSS_PREFIX:$PATH - "${_stagedir}"/bin/b2 \ - --with-atomic \ - --with-chrono \ - --with-container \ - --with-date_time \ - --with-exception \ - --with-fiber \ - --with-filesystem \ - --with-graph \ - --with-graph_parallel \ - --with-iostreams \ - --with-locale \ - --with-log \ - --with-math \ - --with-mpi \ - --with-program_options \ - --with-random \ - --with-regex \ - --with-serialization \ - --with-system \ - --with-test \ - --with-thread \ - --with-timer \ - --with-type_erasure \ - --with-wave \ - --with-stacktrace \ - variant=release \ - debug-symbols=off \ - threading=multi \ - runtime-link=shared \ - link=shared,static \ - target-os=android \ - toolset=clang-android \ - architecture=$_boost_arch \ - address-model=$_boost_address_model \ - -sICONV_PATH="$ANDROID_PREFIX" \ - cflags="$common_flags" \ - cxxflags="$common_flags -frtti -std=gnu++17" \ - linkflags="$ld_flags" \ - --layout=system \ - ${jobs} \ - \ - --prefix="${_stagedir}" \ - install + ./b2 install \ + --prefix="$srcdir/fakeinstall" \ + --user-config="${userConfigs}" \ + --layout=system \ + --with-atomic \ + --with-chrono \ + --with-container \ + --with-date_time \ + --with-exception \ + --with-fiber \ + --with-filesystem \ + --with-graph \ + --with-graph_parallel \ + --with-iostreams \ + --with-locale \ + --with-log \ + --with-math \ + --with-mpi \ + --with-program_options \ + --with-random \ + --with-regex \ + --with-serialization \ + --with-system \ + --with-test \ + --with-thread \ + --with-timer \ + --with-type_erasure \ + --with-wave \ + --with-stacktrace \ + -sICONV_PATH="${ANDROID_PREFIX}" \ + variant=release \ + debug-symbols=off \ + runtime-link=shared \ + link=shared,static \ + target-os=android \ + toolset=clang-android \ + architecture=$_boost_arch \ + threading=multi \ + address-model=$_boost_address_model \ + cflags="${CXXFLAGS}" \ + cxxflags="${CFLAGS}" \ + linkflags="${LDFLAGS}" } package() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/{include,share} "${pkgdir}$ANDROID_PREFIX" + find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; + find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; - local libdir="${pkgdir}$ANDROID_PREFIX"/lib - install -d "${libdir}" - cp -a "${_stagedir}"/lib/*.a "${libdir}"/ + install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/lib "${pkgdir}$ANDROID_PREFIX" - - install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \ - "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE_1_0.txt - - find "${libdir}" -iname '*.a' -exec $ANDROID_STRIP -g {} \; - find "${libdir}" -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt } - -# vim: ts=2 sw=2 et: diff --git a/boost/android-x86-64/PKGBUILD b/boost/android-x86-64/PKGBUILD index b38e7665..b1f1a8a5 100644 --- a/boost/android-x86-64/PKGBUILD +++ b/boost/android-x86-64/PKGBUILD @@ -3,153 +3,146 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. -_pkgname=boost -_pkg_arch=x86-64 _android_arch=x86_64 -_boost_arch=x86 -_boost_address_model=64 - -pkgname=android-$_pkg_arch-$_pkgname -pkgver=1.81.0 -_srcname=boost_${pkgver//./_} +pkgname=android-${_android_arch}-boost +pkgver=1.84.0 pkgrel=1 -url='https://www.boost.org/' +_srcname=boost_${pkgver//./_} arch=('any') +pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})" +url="https://www.boost.org/" license=('custom') -pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)" -depends=("android-$_pkg_arch-libiconv") -options=(!buildflags staticlibs !strip !emptydirs) -makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk' 'android-environment') -conflicts=("android-$_pkgname-$_android_arch") -replaces=("android-$_pkgname-$_android_arch") -source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz - boost-1.81.0-phoenix-multiple-definitions.patch - $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch - no-versioned-shlibs.patch - disable-version-check.patch) -sha256sums=('205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6' - '3ebf428ef6be090a7b56a233330375539ac429333b83708e28fe5db049cfecdb' - 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee' - 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23' - '63d12e7d703b471882608b4225c489f6a35ab425602783a4f9c4ea99a10f9c4b') +depends=("android-${_android_arch}-bzip2" + "android-${_android_arch}-icu" + "android-${_android_arch}-zlib" + "android-${_android_arch}-zstd") +makedepends=('android-environment') +if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then +makedepends+=("android-${_android_arch}-openmpi") +optdepends+=("android-${_android_arch}-openmpi: for mpi support") +fi +options=(!strip !buildflags staticlibs !emptydirs) +source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" + "boost-1.81.0-phoenix-multiple-definitions.patch" + "boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch" + "disable-version-check.patch") +md5sums=('9cbfb9076ed06384471802b850698a6d' + 'cb1c25777e9b85af62366e7c930244b8' + '991daf28f76ea0383620ccaf971decba' + '6290eb4fa0cab451aac92e12e85ef073') prepare() { - cd ${_srcname} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} + # https://github.com/boostorg/phoenix/issues/111 patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch # https://github.com/boostorg/ublas/pull/97 - patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch - - patch -i ../no-versioned-shlibs.patch + patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -p1 -i ../disable-version-check.patch } build() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})" - local target_flags=" \ - --target=${_pkg_arch}-linux-android$ANDROID_MINIMUM_PLATFORM --sysroot=$ANDROID_SYSROOT" - local common_flags=" \ - $target_flags \ - -fexceptions \ - -DANDROID \ - -O3 -DNDEBUG \ - -D_FORTIFY_SOURCE=2 -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -fPIC \ - -DBOOST_ASIO_HAS_STD_STRING_VIEW=1" - local ld_flags=" \ - $target_flags \ - -fexceptions" + # Platform specific patches + case "$_android_arch" in + aarch64) + _boost_arch=arm + _boost_address_model=64 + ;; + armv7a-eabi) + _boost_arch=arm + _boost_address_model=32 + ;; + x86) + _boost_arch=x86 + _boost_address_model=32 + ;; + x86-64) + _boost_arch=x86 + _boost_address_model=64 + ;; + *) + ;; + esac - cd ${_srcname} + ./bootstrap.sh -with-toolset=gcc - msg2 'Bootstrapping b2' - ./bootstrap.sh --with-toolset=gcc + # support for OpenMPI + if [[ _boost_address_model == 64 ]]; then + _boost_mpi='using mpi ;' + else + _boost_mpi='' + fi - install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2 + userConfigs=$srcdir/$_srcname/user-config.jam - # Support for OpenMPI - echo "using mpi ;" >> project-config.jam + cat << EOF > "${userConfigs}" +${_boost_mpi} +using clang : android : ${ANDROID_CXX} : +${ANDROID_AR} \ +${ANDROID_AS} +; +EOF - # boostbook is needed by quickbook - install -dm755 "${_stagedir}"/share/boostbook - cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/ - - # default "minimal" install: "release link=shared,static - # runtime-link=shared threading=single,multi" - # --layout=tagged will add the "-mt" suffix for multithreaded libraries - # and installs includes in $ANDROID_PREFIX/include/boost. - # --layout=system no longer adds the -mt suffix for multi-threaded libs. - # install to ${_stagedir} for consistency with regular boost package - msg2 'Invoking build via b2' - export PATH=$ANDROID_CROSS_PREFIX:$PATH - "${_stagedir}"/bin/b2 \ - --with-atomic \ - --with-chrono \ - --with-container \ - --with-date_time \ - --with-exception \ - --with-fiber \ - --with-filesystem \ - --with-graph \ - --with-graph_parallel \ - --with-iostreams \ - --with-locale \ - --with-log \ - --with-math \ - --with-mpi \ - --with-program_options \ - --with-random \ - --with-regex \ - --with-serialization \ - --with-system \ - --with-test \ - --with-thread \ - --with-timer \ - --with-type_erasure \ - --with-wave \ - --with-stacktrace \ - variant=release \ - debug-symbols=off \ - threading=multi \ - runtime-link=shared \ - link=shared,static \ - target-os=android \ - toolset=clang-android \ - architecture=$_boost_arch \ - address-model=$_boost_address_model \ - -sICONV_PATH="$ANDROID_PREFIX" \ - cflags="$common_flags" \ - cxxflags="$common_flags -frtti -std=gnu++17" \ - linkflags="$ld_flags" \ - --layout=system \ - ${jobs} \ - \ - --prefix="${_stagedir}" \ - install + ./b2 install \ + --prefix="$srcdir/fakeinstall" \ + --user-config="${userConfigs}" \ + --layout=system \ + --with-atomic \ + --with-chrono \ + --with-container \ + --with-date_time \ + --with-exception \ + --with-fiber \ + --with-filesystem \ + --with-graph \ + --with-graph_parallel \ + --with-iostreams \ + --with-locale \ + --with-log \ + --with-math \ + --with-mpi \ + --with-program_options \ + --with-random \ + --with-regex \ + --with-serialization \ + --with-system \ + --with-test \ + --with-thread \ + --with-timer \ + --with-type_erasure \ + --with-wave \ + --with-stacktrace \ + -sICONV_PATH="${ANDROID_PREFIX}" \ + variant=release \ + debug-symbols=off \ + runtime-link=shared \ + link=shared,static \ + target-os=android \ + toolset=clang-android \ + architecture=$_boost_arch \ + threading=multi \ + address-model=$_boost_address_model \ + cflags="${CXXFLAGS}" \ + cxxflags="${CFLAGS}" \ + linkflags="${LDFLAGS}" } package() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/{include,share} "${pkgdir}$ANDROID_PREFIX" + find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; + find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; - local libdir="${pkgdir}$ANDROID_PREFIX"/lib - install -d "${libdir}" - cp -a "${_stagedir}"/lib/*.a "${libdir}"/ + install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/lib "${pkgdir}$ANDROID_PREFIX" - - install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \ - "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE_1_0.txt - - find "${libdir}" -iname '*.a' -exec $ANDROID_STRIP -g {} \; - find "${libdir}" -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt } - -# vim: ts=2 sw=2 et: diff --git a/boost/android-x86/PKGBUILD b/boost/android-x86/PKGBUILD index e7e489f2..58f0956a 100644 --- a/boost/android-x86/PKGBUILD +++ b/boost/android-x86/PKGBUILD @@ -3,153 +3,146 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. -_pkgname=boost -_pkg_arch=x86 _android_arch=x86 -_boost_arch=x86 -_boost_address_model=32 - -pkgname=android-$_pkg_arch-$_pkgname -pkgver=1.81.0 -_srcname=boost_${pkgver//./_} +pkgname=android-${_android_arch}-boost +pkgver=1.84.0 pkgrel=1 -url='https://www.boost.org/' +_srcname=boost_${pkgver//./_} arch=('any') +pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})" +url="https://www.boost.org/" license=('custom') -pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)" -depends=("android-$_pkg_arch-libiconv") -options=(!buildflags staticlibs !strip !emptydirs) -makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk' 'android-environment') -conflicts=("android-$_pkgname-$_android_arch") -replaces=("android-$_pkgname-$_android_arch") -source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz - boost-1.81.0-phoenix-multiple-definitions.patch - $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch - no-versioned-shlibs.patch - disable-version-check.patch) -sha256sums=('205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6' - '3ebf428ef6be090a7b56a233330375539ac429333b83708e28fe5db049cfecdb' - 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee' - 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23' - '63d12e7d703b471882608b4225c489f6a35ab425602783a4f9c4ea99a10f9c4b') +depends=("android-${_android_arch}-bzip2" + "android-${_android_arch}-icu" + "android-${_android_arch}-zlib" + "android-${_android_arch}-zstd") +makedepends=('android-environment') +if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then +makedepends+=("android-${_android_arch}-openmpi") +optdepends+=("android-${_android_arch}-openmpi: for mpi support") +fi +options=(!strip !buildflags staticlibs !emptydirs) +source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" + "boost-1.81.0-phoenix-multiple-definitions.patch" + "boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch" + "disable-version-check.patch") +md5sums=('9cbfb9076ed06384471802b850698a6d' + 'cb1c25777e9b85af62366e7c930244b8' + '991daf28f76ea0383620ccaf971decba' + '6290eb4fa0cab451aac92e12e85ef073') prepare() { - cd ${_srcname} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} + # https://github.com/boostorg/phoenix/issues/111 patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch # https://github.com/boostorg/ublas/pull/97 - patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch - - patch -i ../no-versioned-shlibs.patch + patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -p1 -i ../disable-version-check.patch } build() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})" - local target_flags=" \ - --target=${_pkg_arch}-linux-android$ANDROID_MINIMUM_PLATFORM --sysroot=$ANDROID_SYSROOT" - local common_flags=" \ - $target_flags \ - -fexceptions \ - -DANDROID \ - -O3 -DNDEBUG \ - -D_FORTIFY_SOURCE=2 -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -fPIC \ - -DBOOST_ASIO_HAS_STD_STRING_VIEW=1" - local ld_flags=" \ - $target_flags \ - -fexceptions" + # Platform specific patches + case "$_android_arch" in + aarch64) + _boost_arch=arm + _boost_address_model=64 + ;; + armv7a-eabi) + _boost_arch=arm + _boost_address_model=32 + ;; + x86) + _boost_arch=x86 + _boost_address_model=32 + ;; + x86-64) + _boost_arch=x86 + _boost_address_model=64 + ;; + *) + ;; + esac - cd ${_srcname} + ./bootstrap.sh -with-toolset=gcc - msg2 'Bootstrapping b2' - ./bootstrap.sh --with-toolset=gcc + # support for OpenMPI + if [[ _boost_address_model == 64 ]]; then + _boost_mpi='using mpi ;' + else + _boost_mpi='' + fi - install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2 + userConfigs=$srcdir/$_srcname/user-config.jam - # Support for OpenMPI - echo "using mpi ;" >> project-config.jam + cat << EOF > "${userConfigs}" +${_boost_mpi} +using clang : android : ${ANDROID_CXX} : +${ANDROID_AR} \ +${ANDROID_AS} +; +EOF - # boostbook is needed by quickbook - install -dm755 "${_stagedir}"/share/boostbook - cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/ - - # default "minimal" install: "release link=shared,static - # runtime-link=shared threading=single,multi" - # --layout=tagged will add the "-mt" suffix for multithreaded libraries - # and installs includes in $ANDROID_PREFIX/include/boost. - # --layout=system no longer adds the -mt suffix for multi-threaded libs. - # install to ${_stagedir} for consistency with regular boost package - msg2 'Invoking build via b2' - export PATH=$ANDROID_CROSS_PREFIX:$PATH - "${_stagedir}"/bin/b2 \ - --with-atomic \ - --with-chrono \ - --with-container \ - --with-date_time \ - --with-exception \ - --with-fiber \ - --with-filesystem \ - --with-graph \ - --with-graph_parallel \ - --with-iostreams \ - --with-locale \ - --with-log \ - --with-math \ - --with-mpi \ - --with-program_options \ - --with-random \ - --with-regex \ - --with-serialization \ - --with-system \ - --with-test \ - --with-thread \ - --with-timer \ - --with-type_erasure \ - --with-wave \ - --with-stacktrace \ - variant=release \ - debug-symbols=off \ - threading=multi \ - runtime-link=shared \ - link=shared,static \ - target-os=android \ - toolset=clang-android \ - architecture=$_boost_arch \ - address-model=$_boost_address_model \ - -sICONV_PATH="$ANDROID_PREFIX" \ - cflags="$common_flags" \ - cxxflags="$common_flags -frtti -std=gnu++17" \ - linkflags="$ld_flags" \ - --layout=system \ - ${jobs} \ - \ - --prefix="${_stagedir}" \ - install + ./b2 install \ + --prefix="$srcdir/fakeinstall" \ + --user-config="${userConfigs}" \ + --layout=system \ + --with-atomic \ + --with-chrono \ + --with-container \ + --with-date_time \ + --with-exception \ + --with-fiber \ + --with-filesystem \ + --with-graph \ + --with-graph_parallel \ + --with-iostreams \ + --with-locale \ + --with-log \ + --with-math \ + --with-mpi \ + --with-program_options \ + --with-random \ + --with-regex \ + --with-serialization \ + --with-system \ + --with-test \ + --with-thread \ + --with-timer \ + --with-type_erasure \ + --with-wave \ + --with-stacktrace \ + -sICONV_PATH="${ANDROID_PREFIX}" \ + variant=release \ + debug-symbols=off \ + runtime-link=shared \ + link=shared,static \ + target-os=android \ + toolset=clang-android \ + architecture=$_boost_arch \ + threading=multi \ + address-model=$_boost_address_model \ + cflags="${CXXFLAGS}" \ + cxxflags="${CFLAGS}" \ + linkflags="${LDFLAGS}" } package() { - source android-env ${_pkg_arch} + cd "${srcdir}/$_srcname" + source android-env ${_android_arch} - local _stagedir="${srcdir}/stagedir" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/{include,share} "${pkgdir}$ANDROID_PREFIX" + find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; + find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; - local libdir="${pkgdir}$ANDROID_PREFIX"/lib - install -d "${libdir}" - cp -a "${_stagedir}"/lib/*.a "${libdir}"/ + install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/" + cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/" - install -dm755 "${pkgdir}$ANDROID_PREFIX" - cp -a "${_stagedir}"/lib "${pkgdir}$ANDROID_PREFIX" - - install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \ - "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE_1_0.txt - - find "${libdir}" -iname '*.a' -exec $ANDROID_STRIP -g {} \; - find "${libdir}" -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt } - -# vim: ts=2 sw=2 et: