Add freetype

This commit is contained in:
crazywhalecc
2026-03-21 11:12:24 +08:00
parent 230be2ebe8
commit 5ff973e446
2 changed files with 16 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ freetype:
depends:
- zlib
suggests:
- libpng
- bzip2
- brotli
headers@unix:

View File

@@ -8,6 +8,7 @@ use StaticPHP\Attribute\Package\BuildFor;
use StaticPHP\Attribute\Package\Library;
use StaticPHP\Package\LibraryPackage;
use StaticPHP\Runtime\Executor\UnixCMakeExecutor;
use StaticPHP\Runtime\Executor\WindowsCMakeExecutor;
use StaticPHP\Util\FileSystem;
#[Library('freetype')]
@@ -33,4 +34,18 @@ class freetype
$lib->patchPkgconfPrefix(['freetype2.pc']);
FileSystem::replaceFileStr("{$lib->getBuildRootPath()}/lib/pkgconfig/freetype2.pc", ' -L/lib ', " -L{$lib->getBuildRootPath()}/lib ");
}
#[BuildFor('Windows')]
public function buildWin(LibraryPackage $lib): void
{
WindowsCMakeExecutor::create($lib)
->optionalPackage('libpng', ...cmake_boolean_args('FT_DISABLE_PNG', true))
->optionalPackage('bzip2', ...cmake_boolean_args('FT_DISABLE_BZIP2', true))
->optionalPackage('brotli', ...cmake_boolean_args('FT_DISABLE_BROTLI', true))
->addConfigureArgs('-DFT_DISABLE_HARFBUZZ=ON')
->build();
// freetype.lib to libfreetype_a.lib
FileSystem::copy("{$lib->getLibDir()}\\freetype.lib", "{$lib->getLibDir()}\\libfreetype_a.lib");
}
}