forked from oven-sh/bun
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-zlib.ps1
29 lines (23 loc) · 914 Bytes
/
build-zlib.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash
. (Join-Path $PSScriptRoot "env.ps1")
Push-Location (Join-Path $BUN_DEPS_DIR 'zlib')
try {
Run git reset --hard
# TODO: make a patch upstream to change the line
# `#ifdef _MSC_VER`
# to account for clang-cl, which implements `__builtin_ctzl` and `__builtin_expect`
$textToReplace = [regex]::Escape("int __inline __builtin_ctzl(unsigned long mask)") + "[^}]*}"
$fileContent = Get-Content "deflate.h" -Raw
if ($fileContent -match $textToReplace) {
Set-Content -Path "deflate.h" -Value ($fileContent -replace $textToReplace, "")
}
else {
throw "Failed to patch deflate.h"
}
Set-Location (mkdir -Force build)
Run cmake .. @CMAKE_FLAGS
Run cmake --build . --clean-first --config Release
Copy-Item zlib.lib $BUN_DEPS_OUT_DIR
Write-Host "-> zlib.lib"
}
finally { Pop-Location }