set php 7.4 patch alternative

This commit is contained in:
crazywhalecc 2023-04-22 15:58:24 +08:00
parent fa437644f5
commit 61a76dc0c9
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
2 changed files with 22 additions and 3 deletions

View File

@ -12,6 +12,7 @@ use SPC\exception\RuntimeException;
use SPC\store\Config;
use SPC\store\Downloader;
use SPC\util\Patcher;
use SPC\util\Util;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
@ -214,11 +215,11 @@ class FetchSourceCommand extends BaseCommand
private function doPatch(): void
{
// swow 需要软链接内部的文件夹才能正常编译
if (!file_exists(SOURCE_PATH . '/php-src/ext/swow')) {
if (!file_exists(SOURCE_PATH . '/php-src/ext/swow') && Util::getPHPVersionID() >= 80000) {
Patcher::patchSwow();
// patch 一些 PHP 的资源,以便编译
Patcher::patchMicroThings();
}
// patch 一些 PHP 的资源,以便编译
Patcher::patchPHPDepFiles();
// openssl 3 需要 patch 额外的东西
if (!$this->input->getOption('with-openssl11') && $this->php_major_ver === '8.0') {

18
src/SPC/util/Util.php Normal file
View File

@ -0,0 +1,18 @@
<?php
declare(strict_types=1);
namespace SPC\util;
class Util
{
/**
* Get current PHP version ID (downloaded)
*/
public static function getPHPVersionID(): int
{
$file = file_get_contents(SOURCE_PATH . '/php-src/main/php_version.h');
preg_match('/PHP_VERSION_ID (\d+)/', $file, $match);
return intval($match[1]);
}
}