diff options
Diffstat (limited to 'community/mimalloc2/APKBUILD')
-rw-r--r-- | community/mimalloc2/APKBUILD | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/community/mimalloc2/APKBUILD b/community/mimalloc2/APKBUILD new file mode 100644 index 00000000000..ff5d83c2801 --- /dev/null +++ b/community/mimalloc2/APKBUILD @@ -0,0 +1,107 @@ +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Contributor: Nicolas Lorin <androw95220@gmail.com> +# Maintainer: Jakub Jirutka <jakub@jirutka.cz> +pkgname=mimalloc2 +_projname=mimalloc +pkgver=2.1.2 +_pkgver=${pkgver%_*} +pkgrel=0 +_pkgdesc="A compact general purpose allocator with excellent performance" +pkgdesc="$_pkgdesc (in secure mode)" +url="https://github.com/microsoft/mimalloc" +arch="all" +license="MIT" +makedepends="cmake samurai" +provides="mimalloc=$pkgver-r$pkgrel" +subpackages=" + $pkgname-dev + $pkgname-insecure + $pkgname-debug + " +source="https://github.com/microsoft/mimalloc/archive/v$_pkgver/$_projname-$_pkgver.tar.gz + cmake-add-insecure-suffix.patch + " +builddir="$srcdir/$_projname-$_pkgver" + +_buildtypes='debug insecure secure' + +build() { + # https://github.com/microsoft/mimalloc/issues/597 + export CFLAGS="$CFLAGS -D__USE_ISOC11" + _build out/debug -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON + + # This is called "release" build by upstream. + _build out/insecure -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=OFF + + _build out/secure -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON +} + +_build() { + local outdir="$1"; shift + + local crossopts= + [ "$CBUILD" = "$CHOST" ] \ + || crossopts='-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux' + + CFLAGS=${CFLAGS/-Os/} cmake -B "$outdir" -G Ninja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DMI_INSTALL_TOPLEVEL=ON \ + $crossopts \ + "$@" . + cmake --build "$outdir" +} + +check() { + local btype; for btype in $_buildtypes; do + msg "Testing $btype build" + + cd "$builddir"/out/$btype + CTEST_OUTPUT_ON_FAILURE=TRUE ctest --timeout 300 + done +} + +package() { + local btype; for btype in $_buildtypes; do + DESTDIR="$pkgdir" cmake --install out/$btype + done + + cd "$pkgdir" + ln -s libmimalloc-secure.so usr/lib/libmimalloc.so + ln -s libmimalloc-secure.so.${pkgver%%.*} usr/lib/libmimalloc.so.${pkgver%%.*} + ln -s libmimalloc-secure.so.${pkgver%.*} usr/lib/libmimalloc.so.${pkgver%.*} + ln -s libmimalloc-secure.a usr/lib/libmimalloc.a + + sed 's/-secure/-insecure/g' usr/lib/cmake/mimalloc/mimalloc-release.cmake \ + > usr/lib/cmake/mimalloc/mimalloc-insecure.cmake + mv usr/lib/cmake/mimalloc/mimalloc-release.cmake usr/lib/cmake/mimalloc/mimalloc-secure.cmake + ln -s mimalloc-secure.cmake usr/lib/cmake/mimalloc/mimalloc-release.cmake + + rm -f usr/lib/*.o +} + +dev() { + provides="mimalloc-dev=$pkgver-r$pkgrel" + + default_dev +} + +insecure() { + pkgdesc="$_pkgdesc (in insecure mode)" + provides="mimalloc-insecure=$pkgver-r$pkgrel" + + amove usr/lib/libmimalloc-insecure.* +} + +debug() { + pkgdesc="$_pkgdesc (debug build)" + provides="mimalloc-debug=$pkgver-r$pkgrel" + options="!strip" + + amove usr/lib/libmimalloc-debug.* +} + +sha512sums=" +927b046e67783b325a6e41e3a9a6d3d78306fa1c82255defd1f3a7a60a27fd809a601f65b1b27fa38f2064e124f29856d7c0e5ccc33c54c2e4b6ebb9816d74b1 mimalloc-2.1.2.tar.gz +99a7777e310f4a585e482ad9dc44fce62e88b65f4f8f51545c9e6b1fd8a17583614cc853e65dade9dd083936de90c3a6f23aa52eb84697020f2a44868e6d4c93 cmake-add-insecure-suffix.patch +" |