Add mimalloc

This commit is contained in:
crazywhalecc 2026-02-06 13:05:37 +08:00
parent b42601d288
commit 2874336f0e
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
2 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,12 @@
mimalloc:
type: library
artifact:
source:
type: ghtagtar
repo: microsoft/mimalloc
match: 'v2\.\d\.[^3].*'
metadata:
license-files: [LICENSE]
license: MIT
static-libs@unix:
- libmimalloc.a

View File

@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace Package\Library;
use StaticPHP\Attribute\Package\BuildFor;
use StaticPHP\Attribute\Package\Library;
use StaticPHP\Package\LibraryPackage;
use StaticPHP\Runtime\Executor\UnixCMakeExecutor;
use StaticPHP\Runtime\SystemTarget;
#[Library('mimalloc')]
class mimalloc
{
#[BuildFor('Darwin')]
#[BuildFor('Linux')]
public function buildUnix(LibraryPackage $lib): void
{
$cmake = UnixCMakeExecutor::create($lib)
->addConfigureArgs(
'-DMI_BUILD_SHARED=OFF',
'-DMI_BUILD_OBJECT=OFF',
'-DMI_INSTALL_TOPLEVEL=ON',
);
if (SystemTarget::getLibc() === 'musl') {
$cmake->addConfigureArgs('-DMI_LIBC_MUSL=ON');
}
$cmake->build();
}
}