Allow curl building static executable

This commit is contained in:
crazywhalecc 2026-03-18 15:00:58 +08:00
parent c81146bf18
commit 0b0ecd17c3
No known key found for this signature in database
GPG Key ID: 1F4BDD59391F2680
2 changed files with 9 additions and 5 deletions

View File

@ -1,5 +1,5 @@
curl: curl:
type: library type: target
artifact: artifact:
source: source:
type: ghrel type: ghrel
@ -29,5 +29,7 @@ curl:
- SystemConfiguration - SystemConfiguration
headers: headers:
- curl - curl
static-bins@unix:
- curl
static-libs@unix: static-libs@unix:
- libcurl.a - libcurl.a

View File

@ -2,18 +2,18 @@
declare(strict_types=1); declare(strict_types=1);
namespace Package\Library; namespace Package\Target;
use StaticPHP\Attribute\Package\BuildFor; use StaticPHP\Attribute\Package\BuildFor;
use StaticPHP\Attribute\Package\Library;
use StaticPHP\Attribute\Package\PatchBeforeBuild; use StaticPHP\Attribute\Package\PatchBeforeBuild;
use StaticPHP\Attribute\Package\Target;
use StaticPHP\Attribute\PatchDescription; use StaticPHP\Attribute\PatchDescription;
use StaticPHP\Package\LibraryPackage; use StaticPHP\Package\LibraryPackage;
use StaticPHP\Runtime\Executor\UnixCMakeExecutor; use StaticPHP\Runtime\Executor\UnixCMakeExecutor;
use StaticPHP\Runtime\SystemTarget; use StaticPHP\Runtime\SystemTarget;
use StaticPHP\Util\FileSystem; use StaticPHP\Util\FileSystem;
#[Library('curl')] #[Target('curl')]
class curl class curl
{ {
#[PatchBeforeBuild] #[PatchBeforeBuild]
@ -48,7 +48,7 @@ class curl
->optionalPackage('idn2', ...cmake_boolean_args('CURL_USE_IDN2')) ->optionalPackage('idn2', ...cmake_boolean_args('CURL_USE_IDN2'))
->optionalPackage('libcares', '-DENABLE_ARES=ON') ->optionalPackage('libcares', '-DENABLE_ARES=ON')
->addConfigureArgs( ->addConfigureArgs(
'-DBUILD_CURL_EXE=OFF', '-DBUILD_CURL_EXE=ON',
'-DBUILD_LIBCURL_DOCS=OFF', '-DBUILD_LIBCURL_DOCS=OFF',
) )
->build(); ->build();
@ -63,5 +63,7 @@ class curl
} }
shell()->cd("{$lib->getLibDir()}/cmake/CURL/") shell()->cd("{$lib->getLibDir()}/cmake/CURL/")
->exec("sed -ie 's|\"/lib/libcurl.a\"|\"{$lib->getLibDir()}/libcurl.a\"|g' CURLTargets-release.cmake"); ->exec("sed -ie 's|\"/lib/libcurl.a\"|\"{$lib->getLibDir()}/libcurl.a\"|g' CURLTargets-release.cmake");
$lib->setOutput('Static curl executable path', BUILD_BIN_PATH . '/curl');
} }
} }