Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Windows + CMake Build System #4410

Merged
merged 241 commits into from
Oct 27, 2023
Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
a81ca0d
Prepare for windows event loop
Jarred-Sumner Aug 30, 2023
3775081
More progress
Jarred-Sumner Aug 31, 2023
69f85b5
Update libuv.zig
Jarred-Sumner Aug 31, 2023
3c4015d
wip
Jarred-Sumner Aug 31, 2023
cbdf380
Make compiling each dependency a shell script
Jarred-Sumner Sep 2, 2023
9c8e17e
Bump mimalloc
Jarred-Sumner Sep 2, 2023
668e5ce
Add the build scripts
Jarred-Sumner Sep 2, 2023
24582cc
Update settings.json
Jarred-Sumner Sep 3, 2023
40193f8
Fix a bunch of compiler warnings
Jarred-Sumner Sep 3, 2023
8a5f27c
Remove more warnings
Jarred-Sumner Sep 3, 2023
d5d0ffe
more warnings
Jarred-Sumner Sep 3, 2023
1d5ea13
cmake works
Jarred-Sumner Sep 3, 2023
80e4545
Update JSSQLStatement.h
Jarred-Sumner Sep 3, 2023
8f7f75b
put it in the zig file
Jarred-Sumner Sep 3, 2023
b142009
Fix usockets warnings
Jarred-Sumner Sep 3, 2023
3de075b
Fixup
Jarred-Sumner Sep 3, 2023
c267a42
Fix one of the compiler errors
Jarred-Sumner Sep 4, 2023
0ff9a10
chunk
Jarred-Sumner Sep 4, 2023
5b1f211
draw the rest of the owl
Jarred-Sumner Sep 4, 2023
c9f614a
theres more
Jarred-Sumner Sep 4, 2023
2ef51ca
Rename Process -> BunProcess
Jarred-Sumner Sep 4, 2023
36840f8
Add musl polyfill for memmem on Windows
Jarred-Sumner Sep 4, 2023
03334de
More
Jarred-Sumner Sep 4, 2023
60f1a81
12 mb
Jarred-Sumner Sep 4, 2023
3b93187
Fix getenvZ
Jarred-Sumner Sep 4, 2023
37d8593
fix variosu issues
Jarred-Sumner Sep 4, 2023
f76f15c
Add fast-ish path for bun install on Windows
Jarred-Sumner Sep 4, 2023
f40b07a
Update windows.zig
Jarred-Sumner Sep 4, 2023
c63b9aa
Update windows.zig
Jarred-Sumner Sep 4, 2023
dfa0bf6
Fix build issue
Jarred-Sumner Sep 4, 2023
a113950
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 4, 2023
6adb601
it works
Jarred-Sumner Sep 4, 2023
32084da
hmmm
Jarred-Sumner Sep 4, 2023
35fdc69
Rename file
Jarred-Sumner Sep 5, 2023
fd97e2f
Fixups
Jarred-Sumner Sep 5, 2023
5aa1324
Update wtf-bindings.cpp
dylan-conway Sep 5, 2023
c5ea98a
Update src/bun.js/bindings/headers-handwritten.h
Jarred-Sumner Sep 5, 2023
04a2944
further!
Jarred-Sumner Sep 5, 2023
a66b766
more
Jarred-Sumner Sep 5, 2023
e84a85b
Update .gitignore
Jarred-Sumner Sep 5, 2023
5b808d6
hm
Jarred-Sumner Sep 5, 2023
f9d325c
quite a lot of fixes
Jarred-Sumner Sep 5, 2023
e2d3bdd
Update CMakeLists.txt
Jarred-Sumner Sep 5, 2023
ebc64f2
zig fmt
Jarred-Sumner Sep 5, 2023
4b1d1a2
Merge branch 'main' into jarred/prepare-for-libuv
Jarred-Sumner Sep 5, 2023
27c82a6
Many more things are starting to work.
Jarred-Sumner Sep 6, 2023
b9e5758
Merge branch 'main' into jarred/prepare-for-libuv
Jarred-Sumner Sep 6, 2023
547b845
reb
Jarred-Sumner Sep 6, 2023
831919d
regenaret
Jarred-Sumner Sep 6, 2023
38849b5
Update JSSink.h
Jarred-Sumner Sep 6, 2023
e7c6b1d
fixup
Jarred-Sumner Sep 6, 2023
e44911d
fetch works
Jarred-Sumner Sep 6, 2023
c33e86e
Bun.serve() and much of the event loop works now
Jarred-Sumner Sep 6, 2023
caa3ff7
Make require() work
Jarred-Sumner Sep 6, 2023
5fb23b9
bun install progress
Jarred-Sumner Sep 6, 2023
400bc94
more things work
Jarred-Sumner Sep 6, 2023
4b58698
Merge branch 'main' into jarred/prepare-for-libuv
Jarred-Sumner Sep 6, 2023
4601b80
use less std.os
Jarred-Sumner Sep 6, 2023
b8329f2
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 6, 2023
666fbea
Fixes
Jarred-Sumner Sep 6, 2023
1a275c6
small fixes
Jarred-Sumner Sep 6, 2023
ce4c135
Bump
Jarred-Sumner Sep 6, 2023
6979855
Bummp
Jarred-Sumner Sep 6, 2023
dae3887
Undo that change
Jarred-Sumner Sep 6, 2023
dca6ffd
We have to bump the version of Debian because libarchive has a higher…
Jarred-Sumner Sep 6, 2023
9a485be
ok
Jarred-Sumner Sep 6, 2023
db42fd3
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 6, 2023
724a83d
some clenaup
Jarred-Sumner Sep 6, 2023
bb9e0c2
windows
Jarred-Sumner Sep 6, 2023
33d83ad
Update bun.zig
Jarred-Sumner Sep 6, 2023
258615a
fixup
Jarred-Sumner Sep 6, 2023
bd7a261
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 6, 2023
4ac6ca8
avoid duplicate symbols
dylan-conway Sep 6, 2023
ca835b7
avoid undefined symbols
dylan-conway Sep 6, 2023
b7241f7
bump
Jarred-Sumner Sep 7, 2023
b38b345
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 7, 2023
dc8d70a
Merge branch 'main' into jarred/prepare-for-libuv
Jarred-Sumner Sep 7, 2023
2b6f297
Remove issue template for install
Electroid Sep 6, 2023
02ba25c
Add types for cp and cpSync
Electroid Sep 6, 2023
eb316e7
Add types for watchFile and unwatchFile
Electroid Sep 6, 2023
70ec9af
Add bun-types to 'bun fmt' script
Electroid Sep 6, 2023
99219d5
Update nodejs compat docs cp/cpSync/watchFile/unwatchFile (#4525)
birkskyum Sep 6, 2023
4b5233f
feat(fetch) rejectUnauthorized and checkServerIdentity (#4514)
Jarred-Sumner Sep 7, 2023
61bb92b
Merge remote-tracking branch 'origin' into jarred/prepare-for-libuv
Jarred-Sumner Sep 7, 2023
0a968a6
churn
Jarred-Sumner Sep 7, 2023
b6a4609
Update feature_flags.zig
Jarred-Sumner Sep 7, 2023
9e82e04
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 7, 2023
c7e93c1
Update response.zig
Jarred-Sumner Sep 7, 2023
19a4df3
Revert "avoid undefined symbols"
Jarred-Sumner Sep 7, 2023
497d546
Revert "avoid duplicate symbols"
Jarred-Sumner Sep 7, 2023
dbd57f4
Update feature_flags.zig
Jarred-Sumner Sep 7, 2023
cffdacc
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 7, 2023
f7ce248
Set permissions
Jarred-Sumner Sep 7, 2023
9452ade
more
Jarred-Sumner Sep 7, 2023
48cdfd6
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 7, 2023
c645342
Update mimalloc
Jarred-Sumner Sep 7, 2023
ce16029
Fix sqlite test failures
Jarred-Sumner Sep 7, 2023
605477f
Fix some test failures
Jarred-Sumner Sep 7, 2023
6969679
Make sure we remove libusockets is removed
Jarred-Sumner Sep 7, 2023
7177cb0
Merge branch 'main' into jarred/prepare-for-libuv
Jarred-Sumner Sep 7, 2023
f44c2b6
hm
Jarred-Sumner Sep 7, 2023
fb86c1b
[dave]: fix webcrypto crash
Jarred-Sumner Sep 7, 2023
7f6bbce
Merge branch 'main' into jarred/prepare-for-libuv
Jarred-Sumner Sep 9, 2023
242ab44
bump
Jarred-Sumner Sep 7, 2023
99c92d2
Update index.ts
Jarred-Sumner Sep 9, 2023
52d47c2
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
Jarred-Sumner Sep 9, 2023
89edf5e
windows zig compiles
paperdave Oct 17, 2023
6ff8c40
cmake on mac works
paperdave Oct 17, 2023
602a526
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 17, 2023
bf12268
progress
paperdave Oct 18, 2023
cb5c4c7
yay
paperdave Oct 18, 2023
07ed4d8
bun run build
paperdave Oct 18, 2023
4c6c617
fix
paperdave Oct 18, 2023
c29ec25
ok
paperdave Oct 19, 2023
80b4047
oops
paperdave Oct 19, 2023
98f8a45
asdfasfdafdsafda
paperdave Oct 19, 2023
5e10074
fghjkl
paperdave Oct 19, 2023
a6a3850
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 19, 2023
51e0770
git ignore
paperdave Oct 19, 2023
c9fa15d
wow
paperdave Oct 19, 2023
11d4e85
Process -> BunProcess
paperdave Oct 19, 2023
f794feb
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 19, 2023
019bf2c
hmm
paperdave Oct 19, 2023
95662b0
blah
paperdave Oct 19, 2023
42ac78e
Merge remote-tracking branch 'origin/jarred/prepare-for-libuv-2' into…
paperdave Oct 19, 2023
60be6b2
finalize merge
paperdave Oct 19, 2023
0e3dab7
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 19, 2023
5150c08
now it only has linker errors on mac
paperdave Oct 20, 2023
89e7eef
sdfadsf
paperdave Oct 20, 2023
0ed8153
g
paperdave Oct 20, 2023
c6f29fb
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 20, 2023
5eabbdc
getting farther
paperdave Oct 20, 2023
74a3582
sxdcvbnmk,
paperdave Oct 20, 2023
14be6f7
adfhjskfjdhkas
paperdave Oct 20, 2023
5f30a71
a
paperdave Oct 20, 2023
18d368b
fgh
paperdave Oct 20, 2023
939e8be
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 20, 2023
c493435
update build dot zig
paperdave Oct 20, 2023
bb3a110
asdfg
paperdave Oct 20, 2023
0c98256
theoretical -DCANARY flag we can use
paperdave Oct 20, 2023
d1c9f07
asdf
paperdave Oct 20, 2023
de3a0f6
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 20, 2023
6158d59
cool
paperdave Oct 20, 2023
7a7c85d
okay
paperdave Oct 20, 2023
b72eec9
colorterm
paperdave Oct 20, 2023
00d28e0
New build workflow
Electroid Oct 19, 2023
a3381ee
Fix script
Electroid Oct 19, 2023
43cc370
Use sudo
Electroid Oct 19, 2023
c5a4060
More sudo
Electroid Oct 19, 2023
8536313
Tweak dependencies
Electroid Oct 19, 2023
35bb6bf
Another sudo attempt
Electroid Oct 19, 2023
47f3ace
Tweak script
Electroid Oct 19, 2023
560e5f9
16.0 -> 16
Electroid Oct 19, 2023
f9b7c24
Tweak script
Electroid Oct 19, 2023
5af35fb
Tweak script
Electroid Oct 19, 2023
55444cc
Tweak script
Electroid Oct 19, 2023
93f530c
Tweak script
Electroid Oct 19, 2023
ef5c2a2
Tweak script
Electroid Oct 19, 2023
aed8be2
bun install
Electroid Oct 19, 2023
7055728
ssh into github actions
Electroid Oct 19, 2023
4351966
add more to ssh
Electroid Oct 19, 2023
929c7ae
Fix postinstal
Electroid Oct 19, 2023
0646f10
Skip llvm
Electroid Oct 19, 2023
b652782
New dockerfile
Electroid Oct 20, 2023
9cdf695
Build
Electroid Oct 20, 2023
071165b
More changes to Dockerfile
Electroid Oct 20, 2023
bcf027c
chaos chaos chaos
paperdave Oct 21, 2023
c271db3
okay
paperdave Oct 21, 2023
9f79fde
Merge remote-tracking branch 'origin/ci-test' into jarred/prepare-for…
paperdave Oct 21, 2023
2407143
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 21, 2023
f22b56e
a
paperdave Oct 21, 2023
d37bb8e
more cmake nonsense
paperdave Oct 21, 2023
5e72f7f
add unified sources code (does not work)
paperdave Oct 21, 2023
20234bc
stuff
paperdave Oct 21, 2023
fd12328
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 23, 2023
614e071
prepare for CI builds
paperdave Oct 24, 2023
03197bb
ok
paperdave Oct 24, 2023
ed84e56
yay
paperdave Oct 24, 2023
773ac21
yeah
paperdave Oct 24, 2023
89556f1
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 25, 2023
4c02037
make this more stable simply by trying again if it fails, 5 times, th…
paperdave Oct 25, 2023
5448bbb
messing with ci
paperdave Oct 25, 2023
f274f54
x
paperdave Oct 25, 2023
a775bb6
a
paperdave Oct 25, 2023
3ddf058
clean dependencies before build
paperdave Oct 25, 2023
bd3102b
oops
paperdave Oct 25, 2023
1f0ecb7
this is not going to work but its closer
paperdave Oct 25, 2023
1b16132
not gonna work either
paperdave Oct 25, 2023
253d3e8
a
paperdave Oct 25, 2023
6439963
a
paperdave Oct 25, 2023
7df453e
did i do it
paperdave Oct 25, 2023
79faeb9
a
paperdave Oct 25, 2023
150befe
a
paperdave Oct 25, 2023
fba3f31
work around weird fs+Bun.build issues
paperdave Oct 25, 2023
0ea0f04
properly pass debug flag correctly
paperdave Oct 25, 2023
31c9dfd
idk im sorry
paperdave Oct 25, 2023
cbaf166
lose
paperdave Oct 25, 2023
7081c89
maybe
paperdave Oct 26, 2023
e925823
run the tests please
paperdave Oct 26, 2023
adb45a7
a
paperdave Oct 26, 2023
e145dbb
fix zlib script
paperdave Oct 26, 2023
d1737db
a
paperdave Oct 26, 2023
9a7b90d
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 26, 2023
99bcf46
hi
paperdave Oct 26, 2023
f4fa4c6
prevent stupid ci issue
paperdave Oct 26, 2023
d6e6dc5
i totally didnt leave in a syntax error on cmakelists
paperdave Oct 26, 2023
3ec3970
a
paperdave Oct 26, 2023
8ab5f74
lol
paperdave Oct 26, 2023
12f2572
relax
paperdave Oct 26, 2023
02ebe31
😭
paperdave Oct 26, 2023
178bc2d
a
paperdave Oct 26, 2023
637e55c
SO SILLY
paperdave Oct 26, 2023
842c346
😡 one line mistake
paperdave Oct 26, 2023
e8c3e56
one character diff
paperdave Oct 26, 2023
53ac11e
fix linking symbols missing
paperdave Oct 26, 2023
cd12968
work on dependency scripts
paperdave Oct 26, 2023
a90d6e5
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 26, 2023
afb04f4
does this work now?
paperdave Oct 26, 2023
c95156a
fix mac build
paperdave Oct 26, 2023
c044f83
a
paperdave Oct 26, 2023
709b80b
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 26, 2023
6addfd1
bump!
paperdave Oct 26, 2023
f735f4e
woops
paperdave Oct 26, 2023
410d95d
add macos baseline build
paperdave Oct 26, 2023
cfdc094
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 26, 2023
6fd819e
.
paperdave Oct 26, 2023
466c150
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 27, 2023
976e1e3
Merge remote-tracking branch 'origin/main' into jarred/prepare-for-libuv
paperdave Oct 27, 2023
e33940a
fix sqlite and also enable $assert/$debug support in builtin functions
paperdave Oct 27, 2023
2422ef1
okay
paperdave Oct 27, 2023
185bb7d
oops
paperdave Oct 27, 2023
8644c91
zig upgrade lol
paperdave Oct 27, 2023
8181f16
Merge remote-tracking branch 'origin' into jarred/prepare-for-libuv
Jarred-Sumner Oct 27, 2023
c744c9e
Merge
Jarred-Sumner Oct 27, 2023
553e9d9
Fix spawn test issue
Jarred-Sumner Oct 27, 2023
b56cb97
Set a timeout
Jarred-Sumner Oct 27, 2023
dd47f01
yeah
paperdave Oct 27, 2023
c3f6c7c
Merge branch 'jarred/prepare-for-libuv' of https://github.com/oven-sh…
paperdave Oct 27, 2023
d984654
etc
paperdave Oct 27, 2023
c61faaa
Merge branch 'jarred/prepare-for-libuv' of github.com:oven-sh/bun int…
paperdave Oct 27, 2023
955578b
mi
paperdave Oct 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 18 additions & 0 deletions .build/base64.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CFLAGS=${CFLAGS:-}
mkdir -p $BUN_DEPS_OUT_DIR

cp $BUN_DEPS_DIR/base64
make clean
cmake $CMAKE_FLAGS .
make
cp libbase64.a $BUN_DEPS_OUT_DIR/libbase64.a
22 changes: 22 additions & 0 deletions .build/base64.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash

$SCRIPT_DIR = Split-Path $PSScriptRoot -Parent
$CMAKE_FLAGS = $env:CMAKE_FLAGS
$BUN_BASE_DIR = if ($env:BUN_BASE_DIR) { $env:BUN_BASE_DIR } else { $SCRIPT_DIR }
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$CCACHE_CC_FLAG = $env:CCACHE_CC_FLAG
$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors }
$CFLAGS = $env:CFLAGS
$CXXFLAGS = $env:CXXFLAGS

# Create the output directory if it doesn't exist
if (-not (Test-Path $BUN_DEPS_OUT_DIR)) {
New-Item -ItemType Directory -Path $BUN_DEPS_OUT_DIR
}

Set-Location (Join-Path $BUN_DEPS_DIR 'base64')
cmake $CMAKE_FLAGS .
cmake --build . --clean-first --config Release

Copy-Item **/*.lib $BUN_DEPS_OUT_DIR
22 changes: 22 additions & 0 deletions .build/boringssl.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CFLAGS=${CFLAGS:-}

mkdir -p $BUN_DEPS_OUT_DIR
cd $BUN_DEPS_DIR/boringssl
rm -rf build
mkdir -p build
cd build
CFLAGS="$CFLAGS" cmake $CMAKE_FLAGS -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -GNinja ..
ninja libcrypto.a libssl.a libdecrepit.a
cp **/libcrypto.a $BUN_DEPS_OUT_DIR/libcrypto.a
cp **/libssl.a $BUN_DEPS_OUT_DIR/libssl.a
cp **/libdecrepit.a $BUN_DEPS_OUT_DIR/libdecrepit.a
19 changes: 19 additions & 0 deletions .build/boringssl.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash

$SCRIPT_DIR = Split-Path $PSScriptRoot -Parent
$CMAKE_FLAGS = $env:CMAKE_FLAGS
$BUN_BASE_DIR = if ($env:BUN_BASE_DIR) { $env:BUN_BASE_DIR } else { $SCRIPT_DIR }
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$CCACHE_CC_FLAG = $env:CCACHE_CC_FLAG
$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors }
$CFLAGS = $env:CFLAGS
$CXXFLAGS = $env:CXXFLAGS

mkdir -p $BUN_DEPS_OUT_DIR -Force
Set-Location $BUN_DEPS_DIR/boringssl
cmake $CMAKE_FLAGS .
cmake --build . --target crypto --target ssl --target decrepit --clean-first --config Release
Copy-Item crypto/Release/crypto.lib $BUN_DEPS_OUT_DIR
Copy-Item ssl/Release/ssl.lib $BUN_DEPS_OUT_DIR
Copy-Item decrepit/Release/decrepit.lib $BUN_DEPS_OUT_DIR
22 changes: 22 additions & 0 deletions .build/libarchive.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CPUS=${CPUS:-$(nproc || sysctl -n hw.ncpu || echo 1)}
CFLAGS=${CFLAGS:-}

mkdir -p $BUN_DEPS_OUT_DIR

cd $BUN_DEPS_DIR/libarchive
make clean || echo ""
./build/clean.sh || echo ""
./build/autogen.sh
CFLAGS="$CFLAGS" $CCACHE_CC_FLAG ./configure --disable-shared --enable-static --with-pic --disable-bsdtar --disable-bsdcat --disable-rpath --enable-posix-regex-lib --without-xml2 --without-expat --without-openssl --without-iconv --without-zlib
make -j$CPUS
cp ./.libs/libarchive.a $BUN_DEPS_OUT_DIR/libarchive.a
16 changes: 16 additions & 0 deletions .build/libarchive.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash

$SCRIPT_DIR = Split-Path $PSScriptRoot -Parent
$CMAKE_FLAGS = $env:CMAKE_FLAGS
$BUN_BASE_DIR = if ($env:BUN_BASE_DIR) { $env:BUN_BASE_DIR } else { $SCRIPT_DIR }
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$CCACHE_CC_FLAG = $env:CCACHE_CC_FLAG
$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors }
$CFLAGS = $env:CFLAGS
$CXXFLAGS = $env:CXXFLAGS

Set-Location $BUN_DEPS_DIR/libarchive
cmake -DBUILD_SHARED_LIBS=OFF -DENABLE_TEST=OFF -DENABLE_INSTALL=OFF --compile-no-warning-as-error $CMAKE_FLAGS .
cmake --build . --target ALL_BUILD --clean-first --config Release -- /p:WarningLevel=0
Copy-Item libarchive/Release/archive.lib $BUN_DEPS_OUT_DIR
16 changes: 16 additions & 0 deletions .build/lolhtml.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CFLAGS=${CFLAGS:-}

mkdir -p $BUN_DEPS_OUT_DIR
cd $BUN_DEPS_DIR/lol-html/c-api
cargo build --release
cp target/release/liblolhtml.a $BUN_DEPS_OUT_DIR
16 changes: 16 additions & 0 deletions .build/lolhtml.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash

$SCRIPT_DIR = Split-Path $PSScriptRoot -Parent
$CMAKE_FLAGS = $env:CMAKE_FLAGS
$BUN_BASE_DIR = if ($env:BUN_BASE_DIR) { $env:BUN_BASE_DIR } else { $SCRIPT_DIR }
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$CCACHE_CC_FLAG = $env:CCACHE_CC_FLAG
$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors }
$CFLAGS = $env:CFLAGS
$CXXFLAGS = $env:CXXFLAGS

Set-Location $BUN_DEPS_DIR/lol-html/c-api
cargo build --release --target x86_64-pc-windows-msvc
Copy-Item target/x86_64-pc-windows-msvc/release/lolhtml.lib $BUN_DEPS_OUT_DIR
Copy-Item target/x86_64-pc-windows-msvc/release/lolhtml.pdb $BUN_DEPS_OUT_DIR
38 changes: 38 additions & 0 deletions .build/mimalloc-debug.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CPUS=${CPUS:-$(nproc || sysctl -n hw.ncpu || echo 1)}
CFLAGS=${CFLAGS:-}
MIMALLOC_OVERRIDE_FLAG=${MIMALLOC_OVERRIDE_FLAG:-}
MIMALLOC_VALGRIND_ENABLED_FLAG=${MIMALLOC_VALGRIND_ENABLED_FLAG:-}

mkdir -p $BUN_DEPS_OUT_DIR

rm -rf $(BUN_DEPS_DIR)/mimalloc/CMakeCache* $(BUN_DEPS_DIR)/mimalloc/CMakeFiles
cd $(BUN_DEPS_DIR)/mimalloc
make clean || echo ""
CFLAGS="$CFLAGS" cmake $CMAKE_FLAGS $MIMALLOC_OVERRIDE_FLAG $MIMALLOC_VALGRIND_ENABLED_FLAG \
-DCMAKE_BUILD_TYPE=Debug \
-DMI_DEBUG_FULL=1 \
-DMI_SKIP_COLLECT_ON_EXIT=1 \
-DMI_BUILD_SHARED=OFF \
-DMI_BUILD_STATIC=ON \
-DMI_BUILD_TESTS=OFF \
-DMI_OSX_ZONE=OFF \
-DMI_OSX_INTERPOSE=OFF \
-DMI_BUILD_OBJECT=ON \
-DMI_USE_CXX=ON \
-DMI_OVERRIDE=OFF \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DCMAKE_CXX_FLAGS="$CFLAGS" \
-GNinja .

ninja
cp $BUN_DEPS_DIR/mimalloc/libmimalloc-debug.a $BUN_DEPS_OUT_DIR/libmimalloc.a
37 changes: 37 additions & 0 deletions .build/mimalloc.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CPUS=${CPUS:-$(nproc || sysctl -n hw.ncpu || echo 1)}
CFLAGS=${CFLAGS:-}
MIMALLOC_OVERRIDE_FLAG=${MIMALLOC_OVERRIDE_FLAG:-}
MIMALLOC_VALGRIND_ENABLED_FLAG=${MIMALLOC_VALGRIND_ENABLED_FLAG:-}

mkdir -p $BUN_DEPS_OUT_DIR

rm -rf $BUN_DEPS_DIR/mimalloc/CMakeCache* $BUN_DEPS_DIR/mimalloc/CMakeFiles
cd $BUN_DEPS_DIR/mimalloc
make clean || echo ""
CFLAGS="$CFLAGS" cmake $CMAKE_FLAGS $MIMALLOC_OVERRIDE_FLAG \
-DMI_SKIP_COLLECT_ON_EXIT=1 \
-DMI_BUILD_SHARED=OFF \
-DMI_BUILD_STATIC=ON \
-DMI_BUILD_TESTS=OFF \
-DMI_OSX_ZONE=OFF \
-DMI_OSX_INTERPOSE=OFF \
-DMI_BUILD_OBJECT=ON \
-DMI_USE_CXX=ON \
-DMI_OVERRIDE=OFF \
-DMI_OSX_ZONE=OFF \
-DCMAKE_C_FLAGS="$CFLAGS" \
-GNinja .

ninja

cp $BUN_DEPS_DIR/mimalloc/libmimalloc.a $BUN_DEPS_OUT_DIR/libmimalloc.a
22 changes: 22 additions & 0 deletions .build/mimalloc.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash

$SCRIPT_DIR = Split-Path $PSScriptRoot -Parent
$CMAKE_FLAGS = $env:CMAKE_FLAGS
$BUN_BASE_DIR = if ($env:BUN_BASE_DIR) { $env:BUN_BASE_DIR } else { $SCRIPT_DIR }
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$CCACHE_CC_FLAG = $env:CCACHE_CC_FLAG
$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors }
$CFLAGS = $env:CFLAGS
$CXXFLAGS = $env:CXXFLAGS

# Create the output directory if it doesn't exist
if (-not (Test-Path $BUN_DEPS_OUT_DIR)) {
New-Item -ItemType Directory -Path $BUN_DEPS_OUT_DIR
}

Set-Location (Join-Path $BUN_DEPS_DIR 'mimalloc')
cmake $CMAKE_FLAGS -DMI_SKIP_COLLECT_ON_EXIT=1 -DMI_BUILD_SHARED=OFF -DMI_BUILD_STATIC=ON -DMI_BUILD_TESTS=OFF -DMI_OSX_ZONE=OFF -DMI_OSX_INTERPOSE=OFF -DMI_BUILD_OBJECT=ON -DMI_USE_CXX=ON -DMI_OVERRIDE=OFF -DMI_OSX_ZONE=OFF -DCMAKE_C_FLAGS="$CFLAGS" .
cmake --build . --clean-first --config Release

Copy-Item **/*.lib $BUN_DEPS_OUT_DIR
22 changes: 22 additions & 0 deletions .build/tinycc.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CPUS=${CPUS:-$(nproc || sysctl -n hw.ncpu || echo 1)}
AR=${AR:-ar}
CC=${CC:-cc}
CFLAGS=${CFLAGS:-}

mkdir -p $BUN_DEPS_OUT_DIR

cd $BUN_DEPS_DIR/tinycc
make clean
AR=$AR CC=$CC CFLAGS="$CFLAGS" ./configure --enable-static --cc=$CC --ar=$AR --config-predefs=yes
make -j10
cp *.a $BUN_DEPS_OUT_DIR
18 changes: 18 additions & 0 deletions .build/zlib.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CPUS=${CPUS:-$(nproc || sysctl -n hw.ncpu || echo 1)}

mkdir -p $BUN_DEPS_OUT_DIR
cd $BUN_DEPS_DIR/zlib
make clean
$CCACHE_CC_FLAG CFLAGS="$CFLAGS" ./configure --static
make -j${CPUS}
cp ./libz.a $BUN_DEPS_OUT_DIR/libz.a
19 changes: 19 additions & 0 deletions .build/zstd.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash

set -euxo pipefail

SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
CMAKE_FLAGS=${CMAKE_FLAGS:-}
BUN_BASE_DIR=${BUN_BASE_DIR:-$(cd $SCRIPT_DIR && cd ../ && pwd)}
BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR:-$BUN_BASE_DIR/src/deps/}
BUN_DEPS_DIR=${BUN_DEPS_DIR:-$BUN_BASE_DIR/src/deps}
CCACHE_CC_FLAG=${CCACHE_CC_FLAG:-}
CPUS=${CPUS:-$(nproc || sysctl -n hw.ncpu || echo 1)}

mkdir -p $BUN_DEPS_OUT_DIR

cd $BUN_DEPS_DIR/zstd
rm -rf Release CMakeCache.txt CMakeFiles
cmake $CMAKE_FLAGS -DZSTD_BUILD_STATIC=ON -B Release -S build/cmake -G Ninja
ninja -C Release
cp Release/lib/libzstd.a $BUN_DEPS_OUT_DIR/libzstd.a
21 changes: 21 additions & 0 deletions .build/zstd.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash

$SCRIPT_DIR = Split-Path $PSScriptRoot -Parent
$CMAKE_FLAGS = $env:CMAKE_FLAGS
$BUN_BASE_DIR = if ($env:BUN_BASE_DIR) { $env:BUN_BASE_DIR } else { $SCRIPT_DIR }
$BUN_DEPS_OUT_DIR = if ($env:BUN_DEPS_OUT_DIR) { $env:BUN_DEPS_OUT_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$BUN_DEPS_DIR = if ($env:BUN_DEPS_DIR) { $env:BUN_DEPS_DIR } else { Join-Path $BUN_BASE_DIR 'src\deps' }
$CCACHE_CC_FLAG = $env:CCACHE_CC_FLAG
$CPUS = if ($env:CPUS) { $env:CPUS } else { (Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors }
$CFLAGS = $env:CFLAGS
$CXXFLAGS = $env:CXXFLAGS

# Create the output directory if it doesn't exist
if (-not (Test-Path $BUN_DEPS_OUT_DIR)) {
New-Item -ItemType Directory -Path $BUN_DEPS_OUT_DIR
}

Set-Location (Join-Path $BUN_DEPS_DIR 'zstd\build\cmake')
cmake $CMAKE_FLAGS .
cmake --build . --clean-first --config Release
Copy-Item lib\*\**.lib $BUN_DEPS_OUT_DIR
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,18 @@ src/js/out/DebugPath.h
make-dev-stats.csv

.uuid
tsconfig.tsbuildinfo
tsconfig.tsbuildinfo
CMakeFiles
build.ninja
.ninja_deps
.ninja_log
CMakeCache.txt
cmake_install.cmake
compile_commands.json

*.lib
x64
**/*.vcxproj*
**/*.sln*
**/*.dir
**/*.pdb
2 changes: 1 addition & 1 deletion .vscode/launch.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.