mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-17 20:34:51 +08:00
add fastlz, libmemcached for linux
This commit is contained in:
parent
bfba598ef4
commit
089b94d753
@ -330,6 +330,16 @@
|
||||
"openssl"
|
||||
]
|
||||
},
|
||||
"libxml": {
|
||||
"support": {
|
||||
"BSD": "wip"
|
||||
},
|
||||
"type": "builtin",
|
||||
"arg-type": "none",
|
||||
"target": [
|
||||
"static"
|
||||
]
|
||||
},
|
||||
"lz4": {
|
||||
"support": {
|
||||
"Windows": "wip",
|
||||
@ -342,16 +352,6 @@
|
||||
"liblz4"
|
||||
]
|
||||
},
|
||||
"libxml": {
|
||||
"support": {
|
||||
"BSD": "wip"
|
||||
},
|
||||
"type": "builtin",
|
||||
"arg-type": "none",
|
||||
"target": [
|
||||
"static"
|
||||
]
|
||||
},
|
||||
"mbregex": {
|
||||
"type": "builtin",
|
||||
"arg-type": "custom",
|
||||
@ -396,8 +396,7 @@
|
||||
"memcached": {
|
||||
"support": {
|
||||
"Windows": "wip",
|
||||
"BSD": "wip",
|
||||
"Linux": "no"
|
||||
"BSD": "wip"
|
||||
},
|
||||
"type": "external",
|
||||
"source": "memcached",
|
||||
@ -406,6 +405,10 @@
|
||||
"lib-depends": [
|
||||
"libmemcached"
|
||||
],
|
||||
"lib-depends-unix": [
|
||||
"libmemcached",
|
||||
"fastlz"
|
||||
],
|
||||
"ext-depends": [
|
||||
"session",
|
||||
"zlib"
|
||||
@ -1083,6 +1086,9 @@
|
||||
"type": "external",
|
||||
"source": "yac",
|
||||
"arg-type-unix": "custom",
|
||||
"lib-depends-unix": [
|
||||
"fastlz"
|
||||
],
|
||||
"ext-depends-unix": [
|
||||
"igbinary"
|
||||
]
|
||||
|
||||
@ -101,6 +101,15 @@
|
||||
"SystemConfiguration"
|
||||
]
|
||||
},
|
||||
"fastlz": {
|
||||
"source": "fastlz",
|
||||
"static-libs-unix": [
|
||||
"libfastlz.a"
|
||||
],
|
||||
"headers": [
|
||||
"fastlz/fastlz.h"
|
||||
]
|
||||
},
|
||||
"freetype": {
|
||||
"source": "freetype",
|
||||
"static-libs-unix": [
|
||||
@ -389,7 +398,9 @@
|
||||
"source": "libmemcached",
|
||||
"static-libs-unix": [
|
||||
"libmemcached.a",
|
||||
"libmemcachedutil.a"
|
||||
"libmemcachedprotocol.a",
|
||||
"libmemcachedutil.a",
|
||||
"libhashkit.a"
|
||||
]
|
||||
},
|
||||
"libpng": {
|
||||
|
||||
@ -272,6 +272,15 @@
|
||||
"path": "LICENSE"
|
||||
}
|
||||
},
|
||||
"fastlz": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ariya/FastLZ.git",
|
||||
"rev": "master",
|
||||
"license": {
|
||||
"type": "file",
|
||||
"path": "LICENSE.MIT"
|
||||
}
|
||||
},
|
||||
"freetype": {
|
||||
"type": "git",
|
||||
"rev": "VER-2-13-2",
|
||||
@ -528,12 +537,12 @@
|
||||
}
|
||||
},
|
||||
"libmemcached": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/static-php/libmemcached-macos.git",
|
||||
"rev": "master",
|
||||
"type": "ghtagtar",
|
||||
"repo": "awesomized/libmemcached",
|
||||
"match": "1.\\d.\\d",
|
||||
"license": {
|
||||
"type": "file",
|
||||
"path": "COPYING"
|
||||
"path": "LICENSE"
|
||||
}
|
||||
},
|
||||
"libpng": {
|
||||
|
||||
@ -12,8 +12,11 @@ class memcached extends Extension
|
||||
{
|
||||
public function getUnixConfigureArg(bool $shared = false): string
|
||||
{
|
||||
$rootdir = BUILD_ROOT_PATH;
|
||||
$zlib_dir = $this->builder->getPHPVersionID() >= 80400 ? '' : "--with-zlib-dir={$rootdir}";
|
||||
return '--enable-memcached' . ($shared ? '=shared' : '') . " {$zlib_dir} --with-libmemcached-dir={$rootdir} --disable-memcached-sasl --enable-memcached-json";
|
||||
return '--enable-memcached' . ($shared ? '=shared' : '') . ' ' .
|
||||
'--with-zlib-dir=' . BUILD_ROOT_PATH . ' ' .
|
||||
'--with-libmemcached-dir=' . BUILD_ROOT_PATH . ' ' .
|
||||
'--disable-memcached-sasl ' .
|
||||
'--enable-memcached-json ' .
|
||||
'--with-system-fastlz';
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,6 +21,6 @@ class yac extends Extension
|
||||
|
||||
public function getUnixConfigureArg(bool $shared = false): string
|
||||
{
|
||||
return '--enable-yac --enable-igbinary --enable-json';
|
||||
return '--enable-yac ' . ($shared ? '=shared' : '') . ' --enable-igbinary --enable-json --with-system-fastlz';
|
||||
}
|
||||
}
|
||||
|
||||
12
src/SPC/builder/linux/library/fastlz.php
Normal file
12
src/SPC/builder/linux/library/fastlz.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace SPC\builder\linux\library;
|
||||
|
||||
class fastlz extends LinuxLibraryBase
|
||||
{
|
||||
use \SPC\builder\unix\library\fastlz;
|
||||
|
||||
public const NAME = 'fastlz';
|
||||
}
|
||||
@ -4,17 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace SPC\builder\linux\library;
|
||||
|
||||
use SPC\exception\RuntimeException;
|
||||
use SPC\util\executor\UnixCMakeExecutor;
|
||||
|
||||
/**
|
||||
* gmp is a template library class for unix
|
||||
*/
|
||||
class libmemcached extends LinuxLibraryBase
|
||||
{
|
||||
public const NAME = 'libmemcached';
|
||||
|
||||
public function build()
|
||||
public function build(): void
|
||||
{
|
||||
throw new RuntimeException('libmemcached is currently not supported on Linux platform');
|
||||
UnixCMakeExecutor::create($this)->build();
|
||||
}
|
||||
}
|
||||
|
||||
12
src/SPC/builder/macos/library/fastlz.php
Normal file
12
src/SPC/builder/macos/library/fastlz.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace SPC\builder\macos\library;
|
||||
|
||||
class fastlz extends MacOSLibraryBase
|
||||
{
|
||||
use \SPC\builder\unix\library\fastlz;
|
||||
|
||||
public const NAME = 'fastlz';
|
||||
}
|
||||
@ -4,17 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace SPC\builder\macos\library;
|
||||
|
||||
use SPC\util\executor\UnixAutoconfExecutor;
|
||||
use SPC\util\executor\UnixCMakeExecutor;
|
||||
|
||||
/**
|
||||
* gmp is a template library class for unix
|
||||
*/
|
||||
class libmemcached extends MacOSLibraryBase
|
||||
{
|
||||
public const NAME = 'libmemcached';
|
||||
|
||||
public function build(): void
|
||||
{
|
||||
UnixAutoconfExecutor::create($this)->configure('--disable-sasl')->exec("sed -ie 's/-Werror//g' ./Makefile")->make();
|
||||
UnixCMakeExecutor::create($this)->build();
|
||||
}
|
||||
}
|
||||
|
||||
22
src/SPC/builder/unix/library/fastlz.php
Normal file
22
src/SPC/builder/unix/library/fastlz.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace SPC\builder\unix\library;
|
||||
|
||||
trait fastlz
|
||||
{
|
||||
protected function build(): void
|
||||
{
|
||||
shell()->cd($this->source_dir)->initializeEnv($this)
|
||||
->exec((getenv('CC') ?? 'cc') . ' -c -O3 -fPIC fastlz.c -o fastlz.o')
|
||||
->exec((getenv('AR') ?? 'ar') . ' rcs libfastlz.a fastlz.o');
|
||||
|
||||
if (!copy($this->source_dir . '/fastlz.h', BUILD_INCLUDE_PATH . '/fastlz.h')) {
|
||||
throw new \RuntimeException('Failed to copy fastlz.h');
|
||||
}
|
||||
if (!copy($this->source_dir . '/libfastlz.a', BUILD_LIB_PATH . '/libfastlz.a')) {
|
||||
throw new \RuntimeException('Failed to copy libfastlz.a');
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user