use pkgconfig to determine libs

This commit is contained in:
DubbleClick
2025-07-21 12:10:14 +07:00
parent 1f7d3ec91d
commit bf4b35aa0a
5 changed files with 51 additions and 7 deletions

View File

@@ -61,8 +61,7 @@ class grpc extends Extension
private function getLibraries(): array
{
[, $out] = shell()->execWithResult('$PKG_CONFIG --libs --static grpc');
$libs = join(' ', $out) . ' -lupb -lupb_message_lib -lupb_json_lib -lupb_textformat_lib -lupb_mini_descriptor_lib -lupb_wire_lib -lupb_mem_lib -lupb_base_lib -lutf8_range';
$libs = shell()->execWithResult('$PKG_CONFIG --libs --static grpc')[1][0];
$filtered = str_replace('-pthread', '', $libs);
$filtered = preg_replace('/-L\S+/', '', $filtered);
$filtered = preg_replace('/(?:\S*\/)?lib([a-zA-Z0-9_+-]+)\.a\b/', '-l$1', $filtered);

View File

@@ -4,10 +4,21 @@ declare(strict_types=1);
namespace SPC\builder\unix\library;
use SPC\store\FileSystem;
use SPC\util\executor\UnixCMakeExecutor;
trait grpc
{
public function patchBeforeBuild(): bool
{
FileSystem::replaceFileStr(
$this->source_dir . '/third_party/re2/util/pcre.h',
["#define UTIL_PCRE_H_\n#include <stdint.h>", "#define UTIL_PCRE_H_"],
["#define UTIL_PCRE_H_", "#define UTIL_PCRE_H_\n#include <stdint.h>"],
);
return true;
}
protected function build(): void
{
UnixCMakeExecutor::create($this)