Add package management

This commit is contained in:
crazywhalecc
2024-02-18 13:54:06 +08:00
committed by Jerry Ma
parent 78f4317660
commit a30e054d7d
18 changed files with 481 additions and 85 deletions

View File

@@ -9,7 +9,7 @@ use SPC\exception\FileSystemException;
use SPC\exception\RuntimeException;
use SPC\exception\WrongUsageException;
use SPC\store\Config;
use SPC\store\SourceExtractor;
use SPC\store\SourceManager;
use SPC\util\CustomExt;
abstract class BuilderBase
@@ -144,15 +144,15 @@ abstract class BuilderBase
{
CustomExt::loadCustomExt();
$this->emitPatchPoint('before-php-extract');
SourceExtractor::initSource(sources: ['php-src']);
SourceManager::initSource(sources: ['php-src']);
$this->emitPatchPoint('after-php-extract');
if ($this->getPHPVersionID() >= 80000) {
$this->emitPatchPoint('before-micro-extract');
SourceExtractor::initSource(sources: ['micro']);
SourceManager::initSource(sources: ['micro']);
$this->emitPatchPoint('after-micro-extract');
}
$this->emitPatchPoint('before-exts-extract');
SourceExtractor::initSource(exts: $extensions);
SourceManager::initSource(exts: $extensions);
$this->emitPatchPoint('after-exts-extract');
foreach ($extensions as $extension) {
$class = CustomExt::getExtClass($extension);

View File

@@ -11,7 +11,7 @@ use SPC\exception\RuntimeException;
use SPC\exception\WrongUsageException;
use SPC\store\Config;
use SPC\store\FileSystem;
use SPC\store\SourceExtractor;
use SPC\store\SourceManager;
use SPC\util\DependencyUtil;
abstract class UnixBuilderBase extends BuilderBase
@@ -134,7 +134,7 @@ abstract class UnixBuilderBase extends BuilderBase
$this->emitPatchPoint('before-libs-extract');
// extract sources
SourceExtractor::initSource(libs: $sorted_libraries);
SourceManager::initSource(libs: $sorted_libraries);
$this->emitPatchPoint('after-libs-extract');

View File

@@ -10,7 +10,7 @@ use SPC\exception\RuntimeException;
use SPC\exception\WrongUsageException;
use SPC\store\Config;
use SPC\store\FileSystem;
use SPC\store\SourceExtractor;
use SPC\store\SourceManager;
use SPC\store\SourcePatcher;
use SPC\util\DependencyUtil;
@@ -211,7 +211,7 @@ class WindowsBuilder extends BuilderBase
}
// extract sources
SourceExtractor::initSource(libs: $sorted_libraries);
SourceManager::initSource(libs: $sorted_libraries);
// build all libs
foreach ($this->libs as $lib) {

View File

@@ -14,7 +14,8 @@ class openssl extends WindowsLibraryBase
protected function build(): void
{
$perl = file_exists(BUILD_ROOT_PATH . '\perl\perl\bin\perl.exe') ? (BUILD_ROOT_PATH . '\perl\perl\bin\perl.exe') : SystemUtil::findCommand('perl.exe');
$perl_path_native = PKG_ROOT_PATH . '\strawberry-perl-' . arch2gnu(php_uname('m')) . '-win\perl\bin\perl.exe';
$perl = file_exists($perl_path_native) ? ($perl_path_native) : SystemUtil::findCommand('perl.exe');
if ($perl === null) {
throw new RuntimeException('You need to install perl first! (easiest way is using static-php-cli command "doctor")');
}