Compare commits

..

1 Commits

Author SHA1 Message Date
crazywhalecc
ee3be6f374 add pocketmine support 2023-12-21 21:57:03 +08:00
13 changed files with 187 additions and 102 deletions

View File

@@ -16,6 +16,14 @@
"calendar": {
"type": "builtin"
},
"crypto": {
"type": "external",
"arg-type": "with",
"source": "ext-crypto",
"lib-depends": [
"openssl"
]
},
"ctype": {
"type": "builtin"
},
@@ -122,6 +130,10 @@
"libiconv"
]
},
"igbinary": {
"type": "external",
"source": "igbinary"
},
"imagick": {
"type": "external",
"source": "ext-imagick",
@@ -164,6 +176,14 @@
"openssl"
]
},
"leveldb": {
"type": "external",
"arg-type": "with-prefix",
"source": "pmmp-leveldb",
"lib-depends": [
"leveldb"
]
},
"mbregex": {
"type": "builtin",
"arg-type": "custom",
@@ -213,6 +233,10 @@
"zlib"
]
},
"morton": {
"type": "external",
"source": "ext-morton"
},
"mysqli": {
"type": "builtin",
"arg-type": "with",
@@ -299,6 +323,16 @@
"zlib"
]
},
"pmmp-chunkutils2": {
"type": "external",
"source": "pmmp-chunkutils2",
"arg-type": "custom",
"cpp-extension": true
},
"pmmpthread": {
"type": "external",
"source": "pmmpthread"
},
"posix": {
"type": "builtin",
"unix-only": true
@@ -391,17 +425,6 @@
"sqlite"
]
},
"sqlsrv": {
"type": "external",
"source": "sqlsrv",
"lib-depends": [
"unixodbc"
],
"cpp-extension": true,
"ext-depends-linux": [
"pcntl"
]
},
"ssh2": {
"type": "external",
"source": "ext-ssh2",

View File

@@ -163,6 +163,13 @@
"libsodium"
]
},
"leveldb": {
"source": "leveldb",
"static-libs-unix": [
"libleveldb.a"
],
"cpp-library": true
},
"libargon2": {
"source": "libargon2",
"static-libs-unix": [
@@ -496,17 +503,6 @@
"libtidy.a"
]
},
"unixodbc": {
"source": "unixodbc",
"static-libs-unix": [
"libodbc.a",
"libodbccr.a",
"libodbcinst.a"
],
"lib-depends": [
"libiconv"
]
},
"xz": {
"source": "xz",
"static-libs-unix": [

View File

@@ -42,6 +42,16 @@
"path": "COPYING"
}
},
"ext-crypto": {
"type": "git",
"path": "php-src/ext/crypto",
"rev": "master",
"url": "https://github.com/bukka/php-crypto.git",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"ext-event": {
"type": "url",
"url": "https://bitbucket.org/osmanov/pecl-event/get/3.0.8.tar.gz",
@@ -80,6 +90,16 @@
"path": "LICENSE"
}
},
"ext-morton": {
"type": "git",
"path": "php-src/ext/morton",
"rev": "master",
"url": "https://github.com/pmmp/ext-morton.git",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"ext-snappy": {
"type": "git",
"path": "php-src/ext/snappy",
@@ -136,6 +156,15 @@
"path": "LICENSE"
}
},
"igbinary": {
"type": "ghtar",
"path": "php-src/ext/igbinary",
"repo": "igbinary/igbinary",
"license": {
"type": "file",
"path": "COPYING"
}
},
"imagemagick": {
"type": "ghtar",
"repo": "ImageMagick/ImageMagick",
@@ -172,6 +201,15 @@
"path": "LICENSE"
}
},
"leveldb": {
"type": "git",
"rev": "mojang-compatible",
"url": "https://github.com/pmmp/leveldb.git",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"libargon2": {
"type": "git",
"rev": "master",
@@ -392,6 +430,34 @@
"path": "COPYING"
}
},
"pmmp-chunkutils2": {
"type": "ghtar",
"path": "php-src/ext/chunkutils2",
"repo": "pmmp/ext-chunkutils2",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"pmmp-leveldb": {
"type": "git",
"path": "php-src/ext/leveldb",
"rev": "pmmp-mojang-compatible",
"url": "https://github.com/pmmp/php-leveldb.git",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"pmmpthread": {
"type": "ghtar",
"path": "php-src/ext/pmmpthread",
"repo": "pmmp/ext-pmmpthread",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"postgresql": {
"type": "url",
"url": "https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz",
@@ -457,16 +523,6 @@
"text": "The author disclaims copyright to this source code. In place of\na legal notice, here is a blessing:\n\n * May you do good and not evil.\n * May you find forgiveness for yourself and forgive others.\n * May you share freely, never taking more than you give."
}
},
"sqlsrv": {
"type": "url",
"url": "https://pecl.php.net/get/sqlsrv",
"path": "php-src/ext/sqlsrv",
"filename": "sqlsrv.tgz",
"license": {
"type": "file",
"path": "LICENSE"
}
},
"swoole": {
"type": "ghtar",
"path": "php-src/ext/swoole",
@@ -496,14 +552,6 @@
"path": "README/LICENSE.md"
}
},
"unixodbc": {
"type": "url",
"url": "https://www.unixodbc.org/unixODBC-2.3.12.tar.gz",
"license": {
"type": "file",
"path": "COPYING"
}
},
"xlswriter": {
"type": "url",
"url": "https://pecl.php.net/get/xlswriter",

View File

@@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
namespace SPC\builder\extension;
use SPC\builder\Extension;
use SPC\util\CustomExt;
#[CustomExt('pmmp-chunkutils2')]
class pmmp_chunkutils2 extends Extension
{
public function getDistName(): string
{
return 'chunkutils2';
}
public function getUnixConfigureArg(): string
{
return '--enable-chunkutils2';
}
}

View File

@@ -144,7 +144,6 @@ class LinuxBuilder extends BuilderBase
// prepare build php envs
$envs_build_php = SystemUtil::makeEnvVarString([
'CFLAGS' => $cflags,
'CPPFLAGS' => '-I' . BUILD_INCLUDE_PATH,
'LIBS' => '-ldl -lpthread',
]);

View File

@@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace SPC\builder\linux\library;
class leveldb extends LinuxLibraryBase
{
use \SPC\builder\unix\library\leveldb;
public const NAME = 'leveldb';
}

View File

@@ -1,12 +0,0 @@
<?php
declare(strict_types=1);
namespace SPC\builder\linux\library;
class unixodbc extends LinuxLibraryBase
{
use \SPC\builder\unix\library\unixodbc;
public const NAME = 'unixodbc';
}

View File

@@ -163,7 +163,6 @@ class MacOSBuilder extends BuilderBase
'--enable-shared=no ' .
'--enable-static=yes ' .
"CFLAGS='{$this->arch_c_flags} -Werror=unknown-warning-option' " .
"CPPFLAGS='-I" . BUILD_INCLUDE_PATH . "' " .
'--disable-all ' .
'--disable-cgi ' .
'--disable-phpdbg ' .

View File

@@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace SPC\builder\macos\library;
class leveldb extends MacOSLibraryBase
{
use \SPC\builder\unix\library\leveldb;
public const NAME = 'leveldb';
}

View File

@@ -1,12 +0,0 @@
<?php
declare(strict_types=1);
namespace SPC\builder\macos\library;
class unixodbc extends MacOSLibraryBase
{
use \SPC\builder\unix\library\unixodbc;
public const NAME = 'unixodbc';
}

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
namespace SPC\builder\unix\library;
use SPC\exception\FileSystemException;
use SPC\exception\RuntimeException;
use SPC\store\FileSystem;
trait leveldb
{
/**
* @throws FileSystemException
* @throws RuntimeException
*/
protected function build(): void
{
// CMake needs a clean build directory
FileSystem::resetDir($this->source_dir . '/build');
// Start build
shell()->cd($this->source_dir . '/build')
->exec(
"cmake {$this->builder->makeCmakeArgs()} " .
'-DBUILD_SHARED_LIBS=OFF ' .
'-DLEVELDB_BUILD_TESTS=OFF ' .
'-DLEVELDB_BUILD_BENCHMARKS=OFF ' .
'..'
)
->exec("cmake --build . -j {$this->builder->concurrency}")
->exec('make install DESTDIR=' . BUILD_ROOT_PATH);
}
}

View File

@@ -1,35 +0,0 @@
<?php
declare(strict_types=1);
namespace SPC\builder\unix\library;
use SPC\exception\FileSystemException;
use SPC\exception\RuntimeException;
trait unixodbc
{
/**
* @throws FileSystemException
* @throws RuntimeException
*/
protected function build(): void
{
shell()->cd($this->source_dir)
->exec(
'./configure ' .
'--enable-static --disable-shared ' .
'--disable-debug ' .
'--disable-dependency-tracking ' .
'--with-libiconv-prefix=' . BUILD_ROOT_PATH . ' ' .
'--with-included-ltdl ' .
'--enable-gui=no ' .
'--prefix='
)
->exec('make clean')
->exec("make -j{$this->builder->concurrency}")
->exec('make install DESTDIR=' . BUILD_ROOT_PATH);
$this->patchPkgconfPrefix(['odbc.pc', 'odbccr.pc', 'odbcinst.pc']);
$this->cleanLaFiles();
}
}

View File

@@ -3,7 +3,7 @@
declare(strict_types=1);
# If you want to test new extensions here, just modify it.
$extensions = 'sqlsrv,apcu,bcmath,bz2,calendar,ctype,curl,dba,dom,event,exif,fileinfo,filter,ftp,gd,gmp,iconv,imagick,imap,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcntl,pdo,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,protobuf,readline,redis,session,shmop,simplexml,soap,sockets,sqlite3,swoole,sysvmsg,sysvsem,sysvshm,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib';
$extensions = 'password-argon2,apcu,bcmath,bz2,calendar,ctype,curl,dba,dom,event,exif,fileinfo,filter,ftp,gd,gmp,iconv,imagick,imap,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcntl,pdo,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,protobuf,readline,redis,session,shmop,simplexml,soap,sockets,sqlite3,swoole,sysvmsg,sysvsem,sysvshm,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib';
if (PHP_OS_FAMILY === 'Darwin') {
$extensions .= ',sodium';