aboutsummaryrefslogtreecommitdiffstats
path: root/community/mimalloc2/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/mimalloc2/APKBUILD')
-rw-r--r--community/mimalloc2/APKBUILD107
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
+"