This commit is contained in:
crazywhalecc
2026-03-20 18:03:46 +08:00
parent 1d2916fa8f
commit 0c389d9069
2 changed files with 29 additions and 0 deletions

View File

@@ -14,3 +14,6 @@ zlib:
- zconf.h
static-libs@unix:
- libz.a
static-libs@windows:
- zlibstatic.lib
- zlib_a.lib

View File

@@ -8,6 +8,8 @@ use StaticPHP\Attribute\Package\BuildFor;
use StaticPHP\Attribute\Package\Library;
use StaticPHP\Package\LibraryPackage;
use StaticPHP\Runtime\Executor\UnixAutoconfExecutor;
use StaticPHP\Runtime\Executor\WindowsCMakeExecutor;
use StaticPHP\Util\FileSystem;
#[Library('zlib')]
class zlib
@@ -21,4 +23,28 @@ class zlib
// Patch pkg-config file
$lib->patchPkgconfPrefix(['zlib.pc'], PKGCONF_PATCH_PREFIX);
}
#[BuildFor('Windows')]
public function buildWin(LibraryPackage $lib): void
{
WindowsCMakeExecutor::create($lib)->build();
$detect_list = [
'zlibstatic.lib',
'zs.lib',
'libzs.lib',
];
foreach ($detect_list as $item) {
if (file_exists("{$lib->getLibDir()}\\{$item}")) {
FileSystem::copy("{$lib->getLibDir()}\\{$item}", "{$lib->getLibDir()}\\zlib_a.lib");
FileSystem::copy("{$lib->getLibDir()}\\{$item}", "{$lib->getLibDir()}\\zlibstatic.lib");
break;
}
}
FileSystem::removeFileIfExists("{$lib->getBinDir()}\\zlib.dll");
FileSystem::removeFileIfExists("{$lib->getLibDir()}\\zlib.lib");
FileSystem::removeFileIfExists("{$lib->getLibDir()}\\libz.dll");
FileSystem::removeFileIfExists("{$lib->getLibDir()}\\libz.lib");
FileSystem::removeFileIfExists("{$lib->getLibDir()}\\z.lib");
FileSystem::removeFileIfExists("{$lib->getLibDir()}\\z.dll");
}
}