From fcd0052d12ceac15c146a5659dee944eb297e4fc Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Tue, 24 Mar 2026 12:31:31 +0800 Subject: [PATCH] Add sqlite --- config/pkg/lib/sqlite.yml | 2 ++ src/Package/Library/sqlite.php | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/config/pkg/lib/sqlite.yml b/config/pkg/lib/sqlite.yml index fb6eecf3..442629d0 100644 --- a/config/pkg/lib/sqlite.yml +++ b/config/pkg/lib/sqlite.yml @@ -10,3 +10,5 @@ sqlite: - sqlite3ext.h static-libs@unix: - libsqlite3.a + static-libs@windows: + - libsqlite3_a.lib diff --git a/src/Package/Library/sqlite.php b/src/Package/Library/sqlite.php index ae802bfa..a3d15f9b 100644 --- a/src/Package/Library/sqlite.php +++ b/src/Package/Library/sqlite.php @@ -6,8 +6,11 @@ namespace Package\Library; use StaticPHP\Attribute\Package\BuildFor; use StaticPHP\Attribute\Package\Library; +use StaticPHP\Attribute\Package\PatchBeforeBuild; use StaticPHP\Package\LibraryPackage; use StaticPHP\Runtime\Executor\UnixAutoconfExecutor; +use StaticPHP\Runtime\SystemTarget; +use StaticPHP\Util\FileSystem; #[Library('sqlite')] class sqlite @@ -19,4 +22,18 @@ class sqlite UnixAutoconfExecutor::create($lib)->configure()->make(); $lib->patchPkgconfPrefix(['sqlite3.pc']); } + + #[PatchBeforeBuild] + public function patchBeforeBuild(LibraryPackage $lib): void + { + spc_skip_if(SystemTarget::getTargetOS() !== 'Windows', 'This patch is only for Windows builds.'); + FileSystem::copy(ROOT_DIR . '/src/globals/extra/Makefile-sqlite', "{$lib->getSourceDir()}\\Makefile"); + } + + #[BuildFor('Windows')] + public function buildWin(LibraryPackage $lib): void + { + cmd()->cd($lib->getSourceDir()) + ->exec("nmake PREFIX={$lib->getBuildRootPath()} install-static"); + } }