mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-20 23:35:37 +08:00
Forward-port #1056 on v3
This commit is contained in:
@@ -119,8 +119,7 @@ class postgresql extends LibraryPackage
|
|||||||
|
|
||||||
// remove dynamic libs
|
// remove dynamic libs
|
||||||
shell()->cd($this->getSourceDir() . '/build')
|
shell()->cd($this->getSourceDir() . '/build')
|
||||||
->exec("rm -rf {$this->getBuildRootPath()}/lib/*.so.*")
|
->exec("rm -rf {$this->getBuildRootPath()}/lib/*.so*")
|
||||||
->exec("rm -rf {$this->getBuildRootPath()}/lib/*.so")
|
|
||||||
->exec("rm -rf {$this->getBuildRootPath()}/lib/*.dylib");
|
->exec("rm -rf {$this->getBuildRootPath()}/lib/*.dylib");
|
||||||
|
|
||||||
FileSystem::replaceFileStr("{$this->getLibDir()}/pkgconfig/libpq.pc", '-lldap', '-lldap -llber');
|
FileSystem::replaceFileStr("{$this->getLibDir()}/pkgconfig/libpq.pc", '-lldap', '-lldap -llber');
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ trait frankenphp
|
|||||||
'-ldflags \"-linkmode=external ' . $extLdFlags . ' ' .
|
'-ldflags \"-linkmode=external ' . $extLdFlags . ' ' .
|
||||||
'-X \'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy\' ' .
|
'-X \'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy\' ' .
|
||||||
'-X \'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ' .
|
'-X \'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ' .
|
||||||
|
'-X \'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp ' .
|
||||||
"v{$frankenphp_version} PHP {$libphp_version} Caddy'\\\" " .
|
"v{$frankenphp_version} PHP {$libphp_version} Caddy'\\\" " .
|
||||||
"-tags={$muslTags}nobadger,nomysql,nopgx{$no_brotli}{$no_watcher}",
|
"-tags={$muslTags}nobadger,nomysql,nopgx{$no_brotli}{$no_watcher}",
|
||||||
'LD_LIBRARY_PATH' => BUILD_LIB_PATH,
|
'LD_LIBRARY_PATH' => BUILD_LIB_PATH,
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ class UnixAutoconfExecutor extends Executor
|
|||||||
|
|
||||||
protected array $configure_args = [];
|
protected array $configure_args = [];
|
||||||
|
|
||||||
protected array $ignore_args = [];
|
|
||||||
|
|
||||||
protected PackageInstaller $installer;
|
protected PackageInstaller $installer;
|
||||||
|
|
||||||
public function __construct(protected LibraryPackage $package, ?PackageInstaller $installer = null)
|
public function __construct(protected LibraryPackage $package, ?PackageInstaller $installer = null)
|
||||||
@@ -40,6 +38,8 @@ class UnixAutoconfExecutor extends Executor
|
|||||||
if (!$this->package->hasStage('build')) {
|
if (!$this->package->hasStage('build')) {
|
||||||
throw new SPCInternalException("Package {$this->package->getName()} does not have a build stage defined.");
|
throw new SPCInternalException("Package {$this->package->getName()} does not have a build stage defined.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->configure_args = $this->getDefaultConfigureArgs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,18 +48,12 @@ class UnixAutoconfExecutor extends Executor
|
|||||||
public function configure(...$args): static
|
public function configure(...$args): static
|
||||||
{
|
{
|
||||||
// remove all the ignored args
|
// remove all the ignored args
|
||||||
$args = array_merge($args, $this->getDefaultConfigureArgs(), $this->configure_args);
|
$args = array_merge($args, $this->configure_args);
|
||||||
$args = array_diff($args, $this->ignore_args);
|
|
||||||
$configure_args = implode(' ', $args);
|
$configure_args = implode(' ', $args);
|
||||||
InteractiveTerm::setMessage('Building package: ' . ConsoleColor::yellow($this->package->getName()) . ' (./configure)');
|
InteractiveTerm::setMessage('Building package: ' . ConsoleColor::yellow($this->package->getName()) . ' (./configure)');
|
||||||
return $this->seekLogFileOnException(fn () => $this->shell->exec("./configure {$configure_args}"));
|
return $this->seekLogFileOnException(fn () => $this->shell->exec("./configure {$configure_args}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getConfigureArgsString(): string
|
|
||||||
{
|
|
||||||
return implode(' ', array_merge($this->getDefaultConfigureArgs(), $this->configure_args));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run make
|
* Run make
|
||||||
*
|
*
|
||||||
@@ -134,7 +128,7 @@ class UnixAutoconfExecutor extends Executor
|
|||||||
*/
|
*/
|
||||||
public function removeConfigureArgs(...$args): static
|
public function removeConfigureArgs(...$args): static
|
||||||
{
|
{
|
||||||
$this->ignore_args = [...$this->ignore_args, ...$args];
|
$this->configure_args = array_diff($this->configure_args, $args);
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,11 @@ abstract class UnixUtil
|
|||||||
throw new SPCInternalException("The symbol file {$symbol_file} does not exist, please check if nm command is available.");
|
throw new SPCInternalException("The symbol file {$symbol_file} does not exist, please check if nm command is available.");
|
||||||
}
|
}
|
||||||
// https://github.com/ziglang/zig/issues/24662
|
// https://github.com/ziglang/zig/issues/24662
|
||||||
if (SystemTarget::getTargetOS() !== 'Linux' || ApplicationContext::get(ToolchainInterface::class) instanceof ZigToolchain) {
|
$toolchain = ApplicationContext::get(ToolchainInterface::class);
|
||||||
|
if ($toolchain instanceof ZigToolchain) {
|
||||||
|
return '-Wl,--export-dynamic'; // needs release 0.16, can be removed then
|
||||||
|
}
|
||||||
|
if (SystemTarget::getTargetOS() !== 'Linux') {
|
||||||
return "-Wl,-exported_symbols_list,{$symbol_file}";
|
return "-Wl,-exported_symbols_list,{$symbol_file}";
|
||||||
}
|
}
|
||||||
return "-Wl,--dynamic-list={$symbol_file}";
|
return "-Wl,--dynamic-list={$symbol_file}";
|
||||||
|
|||||||
Reference in New Issue
Block a user