summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ef30debe5a44e9f5a7f7b130b84ab951c0f19214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
# Contributor: Martchus <martchus@gmx.net>

_android_arch=riscv64

pkgname=android-${_android_arch}-boost
pkgver=1.87.0
pkgrel=1
arch=('any')
pkgdesc="Free peer-reviewed portable C++ source libraries (Android ${_android_arch})"
url="https://www.boost.org/"
license=('custom')
groups=('android-boost')
depends=("android-${_android_arch}-bzip2"
         "android-${_android_arch}-icu"
         "android-${_android_arch}-zlib"
         "android-${_android_arch}-zstd")
makedepends=('android-cmake'
             "android-${_android_arch}-openmpi")
optdepends=("android-${_android_arch}-openmpi: for mpi support")
options=(!strip !buildflags staticlibs !emptydirs)
source=("https://github.com/boostorg/boost/releases/download/boost-${pkgver}/boost-${pkgver}-cmake.tar.xz"
        '0001-Disable-wordexp.patch')
md5sums=('d55d43218e81ca3d0fc14436b7665bf1'
         'd880b3d0c05ef6da0d44912cdb82ef1c')

prepare() {
    cd "${srcdir}/boost-${pkgver}"

    patch -Np1 -i ../0001-Disable-wordexp.patch
}

build() {
    cd "${srcdir}/boost-${pkgver}"
    source android-env ${_android_arch}

    ./bootstrap.sh -with-toolset=gcc

    android-${_android_arch}-cmake \
        -S . \
        -B build-shared \
        -DBUILD_SHARED_LIBS=ON \
        -DBOOST_ENABLE_MPI=ON \
        -DBOOST_IOSTREAMS_ENABLE_BZIP2=ON \
        -DBOOST_IOSTREAMS_ENABLE_LZMA=ON \
        -DBOOST_IOSTREAMS_ENABLE_ZLIB=ON \
        -DBOOST_IOSTREAMS_ENABLE_ZSTD=ON \
        -DBOOST_LOCALE_ENABLE_ICONV=ON \
        -DBOOST_LOCALE_ENABLE_ICU=ON \
        -DZLIB_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DZLIB_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libz.so" \
        -DBZIP2_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DBZIP2_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libbz2.so" \
        -DLIBLZMA_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}/lzma" \
        -DLIBLZMA_LIBRARY="${ANDROID_PREFIX_LIB}/liblzma.so" \
        -Dzstd_DIR="${ANDROID_PREFIX_LIB}/cmake/zstd" \
        -DIconv_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DIconv_LIBRARY="${ANDROID_PREFIX_LIB}/libiconv.so" \
        -DICU_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DICU_LIBRARY="${ANDROID_PREFIX_LIB}/libiconv.so" \
        -DICU_DATA_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libicudata.so" \
        -DICU_I18N_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libicui18n.so" \
        -DICU_UC_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libicuuc.so" \
        -DMPI_C_HEADER_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DMPI_CXX_HEADER_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DMPI_mpi_LIBRARY="${ANDROID_PREFIX_LIB}/libmpi.so" \
        -DCMAKE_CXX_FLAGS="-DBOOST_ALL_NO_EMBEDDED_GDB_SCRIPTS -DBOOST_STACKTRACE_LIBCXX_RUNTIME_MAY_CAUSE_MEMORY_LEAK" \
        -Wno-dev \
        ${extra_options}
    make -C build-shared $MAKEFLAGS

    android-${_android_arch}-cmake \
        -S . \
        -B build-static \
        -DBUILD_SHARED_LIBS=OFF \
        -DBOOST_ENABLE_MPI=OFF \
        -DBOOST_IOSTREAMS_ENABLE_BZIP2=ON \
        -DBOOST_IOSTREAMS_ENABLE_LZMA=ON \
        -DBOOST_IOSTREAMS_ENABLE_ZLIB=ON \
        -DBOOST_IOSTREAMS_ENABLE_ZSTD=ON \
        -DBOOST_LOCALE_ENABLE_ICONV=ON \
        -DBOOST_LOCALE_ENABLE_ICU=ON \
        -DZLIB_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DZLIB_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libz.a" \
        -DBZIP2_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DBZIP2_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libbz2.a" \
        -DLIBLZMA_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}/lzma" \
        -DLIBLZMA_LIBRARY="${ANDROID_PREFIX_LIB}/liblzma.a" \
        -Dzstd_DIR="${ANDROID_PREFIX_LIB}/cmake/zstd" \
        -DIconv_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DIconv_LIBRARY="${ANDROID_PREFIX_LIB}/libiconv.a" \
        -DICU_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DICU_LIBRARY="${ANDROID_PREFIX_LIB}/libiconv.a" \
        -DICU_DATA_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libicudata.a" \
        -DICU_I18N_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libicui18n.a" \
        -DICU_UC_LIBRARY_RELEASE="${ANDROID_PREFIX_LIB}/libicuuc.a" \
        -DMPI_C_HEADER_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DMPI_CXX_HEADER_DIR="${ANDROID_PREFIX_INCLUDE}" \
        -DMPI_mpi_LIBRARY="${ANDROID_PREFIX_LIB}/libmpi.a" \
        -DCMAKE_CXX_FLAGS="-DBOOST_ALL_NO_EMBEDDED_GDB_SCRIPTS -DBOOST_STACKTRACE_LIBCXX_RUNTIME_MAY_CAUSE_MEMORY_LEAK" \
        -Wno-dev \
        ${extra_options}
    make -C build-static $MAKEFLAGS
}

package() {
    cd "${srcdir}/boost-${pkgver}"
    source android-env ${_android_arch}

    make -C build-shared DESTDIR="${pkgdir}" install
    make -C build-static DESTDIR="${pkgdir}" install
    ${ANDROID_STRIP} -g --strip-unneeded "${pkgdir}/${ANDROID_PREFIX_LIB}"/*.so
    ${ANDROID_STRIP} -g "${pkgdir}/${ANDROID_PREFIX_LIB}"/*.a

    install -Dm644 -t "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE_1_0.txt
}