Files
static-php-cli/src/Package/Library/zstd.php

47 lines
1.4 KiB
PHP
Raw Normal View History

2026-02-02 16:15:36 +08:00
<?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;
2026-03-21 00:29:35 +08:00
use StaticPHP\Runtime\Executor\WindowsCMakeExecutor;
2026-04-10 21:09:46 +08:00
use StaticPHP\Util\FileSystem;
2026-02-02 16:15:36 +08:00
#[Library('zstd')]
class zstd
{
2026-03-21 00:29:35 +08:00
#[BuildFor('Windows')]
public function buildWin(LibraryPackage $package): void
{
WindowsCMakeExecutor::create($package)
2026-03-21 00:30:15 +08:00
->setWorkingDir("{$package->getSourceDir()}/build/cmake")
2026-03-21 00:29:35 +08:00
->setBuildDir("{$package->getSourceDir()}/build/cmake/build")
->addConfigureArgs(
'-DZSTD_BUILD_STATIC=ON',
'-DZSTD_BUILD_SHARED=OFF',
)
->build();
2026-04-10 21:09:46 +08:00
FileSystem::copy($package->getLibDir() . '\zstd_static.lib', $package->getLibDir() . '/zstd.lib');
2026-05-08 22:13:50 +08:00
FileSystem::copy($package->getLibDir() . '\zstd_static.lib', $package->getLibDir() . '/libzstd.lib');
2026-03-21 00:29:35 +08:00
}
2026-02-02 16:15:36 +08:00
#[BuildFor('Linux')]
#[BuildFor('Darwin')]
public function build(LibraryPackage $lib): void
{
UnixCMakeExecutor::create($lib)
->setBuildDir("{$lib->getSourceDir()}/build/cmake/build")
->addConfigureArgs(
'-DZSTD_BUILD_STATIC=ON',
'-DZSTD_BUILD_SHARED=OFF',
)
->build();
$lib->patchPkgconfPrefix(['libzstd.pc'], PKGCONF_PATCH_PREFIX);
}
}