Add liblz4

This commit is contained in:
crazywhalecc 2026-02-06 11:17:37 +08:00
parent a832cc2114
commit 272338775e
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
2 changed files with 59 additions and 0 deletions

13
config/pkg/lib/liblz4.yml Normal file
View File

@ -0,0 +1,13 @@
liblz4:
type: library
artifact:
source:
type: ghrel
repo: lz4/lz4
match: lz4-.+\.tar\.gz
prefer-stable: true
metadata:
license-files: [LICENSE]
license: BSD-2-Clause
static-libs@unix:
- liblz4.a

View File

@ -0,0 +1,46 @@
<?php
declare(strict_types=1);
namespace Package\Library;
use StaticPHP\Attribute\Package\BuildFor;
use StaticPHP\Attribute\Package\Library;
use StaticPHP\Attribute\Package\PatchBeforeBuild;
use StaticPHP\Attribute\PatchDescription;
use StaticPHP\Package\LibraryPackage;
use StaticPHP\Package\PackageBuilder;
use StaticPHP\Util\FileSystem;
#[Library('liblz4')]
class liblz4
{
#[PatchBeforeBuild]
#[PatchDescription('Fix Makefile install target for static liblz4')]
public function patchBeforeBuild(LibraryPackage $lib): void
{
FileSystem::replaceFileStr($lib->getSourceDir() . '/programs/Makefile', 'install: lz4', "install: lz4\n\ninstallewfwef: lz4");
}
#[BuildFor('Darwin')]
#[BuildFor('Linux')]
public function buildUnix(LibraryPackage $lib, PackageBuilder $builder): void
{
shell()->cd($lib->getSourceDir())->initializeEnv($lib)
->exec("make PREFIX='' clean")
->exec("make lib -j{$builder->concurrency} PREFIX=''");
FileSystem::replaceFileStr("{$lib->getSourceDir()}/Makefile", '$(MAKE) -C $(PRGDIR) $@', '');
shell()->cd($lib->getSourceDir())
->exec("make install PREFIX='' DESTDIR={$lib->getBuildRootPath()}");
$lib->patchPkgconfPrefix(['liblz4.pc']);
foreach (FileSystem::scanDirFiles($lib->getLibDir(), false, true) as $filename) {
if (str_starts_with($filename, 'liblz4') && (str_contains($filename, '.so') || str_ends_with($filename, '.dylib'))) {
unlink("{$lib->getLibDir()}/{$filename}");
}
}
}
}