mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-19 13:24:51 +08:00
Add libffi
This commit is contained in:
parent
880bb8799b
commit
a832cc2114
16
config/pkg/lib/libffi.yml
Normal file
16
config/pkg/lib/libffi.yml
Normal file
@ -0,0 +1,16 @@
|
||||
libffi:
|
||||
type: library
|
||||
artifact:
|
||||
source:
|
||||
type: ghrel
|
||||
repo: libffi/libffi
|
||||
match: libffi.+\.tar\.gz
|
||||
prefer-stable: true
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
headers@unix:
|
||||
- ffi.h
|
||||
- ffitarget.h
|
||||
static-libs@unix:
|
||||
- libffi.a
|
||||
40
src/Package/Library/libffi.php
Normal file
40
src/Package/Library/libffi.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?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\UnixAutoconfExecutor;
|
||||
|
||||
#[Library('libffi')]
|
||||
class libffi extends LibraryPackage
|
||||
{
|
||||
#[BuildFor('Linux')]
|
||||
public function buildLinux(): void
|
||||
{
|
||||
UnixAutoconfExecutor::create($this)
|
||||
->configure()->make();
|
||||
|
||||
if (is_file("{$this->getBuildRootPath()}/lib64/libffi.a")) {
|
||||
copy("{$this->getBuildRootPath()}/lib64/libffi.a", "{$this->getBuildRootPath()}/lib/libffi.a");
|
||||
unlink("{$this->getBuildRootPath()}/lib64/libffi.a");
|
||||
}
|
||||
$this->patchPkgconfPrefix(['libffi.pc']);
|
||||
}
|
||||
|
||||
#[BuildFor('Darwin')]
|
||||
public function buildDarwin(): void
|
||||
{
|
||||
$arch = getenv('SPC_ARCH');
|
||||
UnixAutoconfExecutor::create($this)
|
||||
->configure(
|
||||
"--host={$arch}-apple-darwin",
|
||||
"--target={$arch}-apple-darwin",
|
||||
)
|
||||
->make();
|
||||
$this->patchPkgconfPrefix(['libffi.pc']);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user