Skip to content

Commit 93c099d

Browse files
committed
Add xz
1 parent fcd0052 commit 93c099d

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

config/pkg/lib/xz.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ xz:
1414
- libiconv
1515
headers@unix:
1616
- lzma
17+
headers@windows:
18+
- lzma
19+
- lzma.h
1720
pkg-configs:
1821
- liblzma
1922
static-libs@unix:
2023
- liblzma.a
24+
static-libs@windows:
25+
- lzma.lib
26+
- liblzma_a.lib

src/Package/Library/xz.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use StaticPHP\Attribute\Package\Library;
99
use StaticPHP\Package\LibraryPackage;
1010
use StaticPHP\Runtime\Executor\UnixAutoconfExecutor;
11+
use StaticPHP\Runtime\Executor\WindowsCMakeExecutor;
12+
use StaticPHP\Util\FileSystem;
1113

1214
#[Library('xz')]
1315
class xz
@@ -27,4 +29,14 @@ public function build(LibraryPackage $lib): void
2729
$lib->patchPkgconfPrefix(['liblzma.pc']);
2830
$lib->patchLaDependencyPrefix();
2931
}
32+
33+
#[BuildFor('Windows')]
34+
public function buildWin(LibraryPackage $lib): void
35+
{
36+
WindowsCMakeExecutor::create($lib)->build();
37+
// copy lzma.lib to liblzma_a.lib
38+
FileSystem::copy("{$lib->getLibDir()}\\lzma.lib", "{$lib->getLibDir()}\\liblzma_a.lib");
39+
// patch lzma.h: make static API always available on Windows
40+
FileSystem::replaceFileStr("{$lib->getIncludeDir()}\\lzma.h", 'defined(LZMA_API_STATIC)', 'defined(_WIN32)');
41+
}
3042
}

0 commit comments

Comments
 (0)