Put extension and library compatibility checks before compilation (#451)

This commit is contained in:
Jerry Ma
2024-05-16 13:01:11 +08:00
committed by GitHub
parent 3e84becf77
commit 3136d6edc1
13 changed files with 86 additions and 36 deletions

View File

@@ -14,11 +14,15 @@ class imap extends Extension
/**
* @throws WrongUsageException
*/
public function getUnixConfigureArg(): string
public function validate(): void
{
if ($this->builder->getOption('enable-zts')) {
throw new WrongUsageException('ext-imap is not thread safe, do not build it with ZTS builds');
}
}
public function getUnixConfigureArg(): string
{
$arg = '--with-imap=' . BUILD_ROOT_PATH;
if ($this->builder->getLib('openssl') !== null) {
$arg .= ' --with-imap-ssl=' . BUILD_ROOT_PATH;

View File

@@ -16,11 +16,15 @@ class opcache extends Extension
* @throws WrongUsageException
* @throws RuntimeException
*/
public function getUnixConfigureArg(): string
public function validate(): void
{
if ($this->builder->getPHPVersionID() < 80000) {
throw new WrongUsageException('Statically compiled PHP with Zend Opcache only available for PHP >= 8.0 !');
}
}
public function getUnixConfigureArg(): string
{
return '--enable-opcache';
}

View File

@@ -11,11 +11,10 @@ use SPC\util\CustomExt;
#[CustomExt('parallel')]
class parallel extends Extension
{
public function getConfigureArg(): string
public function validate(): void
{
if (!$this->builder->getOption('enable-zts')) {
throw new WrongUsageException('ext-parallel must be built with ZTS builds. Use "--enable-zts" option!');
}
return parent::getConfigureArg(); // TODO: Change the autogenerated stub
}
}

View File

@@ -17,12 +17,16 @@ class swoole_hook_pgsql extends Extension
return 'swoole';
}
public function getUnixConfigureArg(): string
public function validate(): void
{
// pdo_pgsql need to be disabled
if ($this->builder->getExt('pdo_pgsql') !== null) {
throw new WrongUsageException('swoole-hook-pgsql provides pdo_pgsql, if you enable pgsql hook for swoole, you must remove pdo_pgsql extension.');
}
}
public function getUnixConfigureArg(): string
{
// enable swoole pgsql hook
return '--enable-swoole-pgsql';
}

View File

@@ -17,12 +17,16 @@ class swoole_hook_sqlite extends Extension
return 'swoole';
}
public function getUnixConfigureArg(): string
public function validate(): void
{
// pdo_pgsql need to be disabled
if ($this->builder->getExt('pdo_sqlite') !== null) {
throw new WrongUsageException('swoole-hook-sqlite provides pdo_sqlite, if you enable sqlite hook for swoole, you must remove pdo_sqlite extension.');
}
}
public function getUnixConfigureArg(): string
{
// enable swoole pgsql hook
return '--enable-swoole-sqlite';
}