mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
## Summary - `bun run build:local` now handles everything: configuring JSC, building JSC, and building Bun in a single command on all platforms (macOS, Linux, Windows). Previously required manually running `bun run jsc:build:debug`, deleting a duplicate `InspectorProtocolObjects.h` header, and then running the Bun build separately. - Incremental JSC rebuilds: JSC is built via `add_custom_target` that delegates to JSC's inner Ninja, which tracks WebKit source file changes and only rebuilds what changed. `ninja -Cbuild/debug-local` also works after the first build. - Cross-platform support: - macOS: Uses system ICU automatically - Linux: Uses system ICU via find_package instead of requiring bundled static libs - Windows: Builds ICU from source automatically (only when libs don't already exist), sets up static CRT and ICU naming conventions ### Changes - cmake/tools/SetupWebKit.cmake: Replace the old WEBKIT_LOCAL block (which just set include paths and assumed JSC was pre-built) with full JSC configure + build integration for all platforms - cmake/targets/BuildBun.cmake: Add jsc as a build dependency, use system ICU on Linux for local builds, handle bmalloc linking for local builds - CONTRIBUTING.md / docs/project/contributing.mdx: Simplify "Building WebKit locally" docs from ~15 lines of manual steps to 3 lines ## Test plan - [x] macOS arm64: clean build, incremental rebuild, WebKit source change rebuild - [x] Windows x64: clean build with ICU, incremental rebuild with ICU skip - [x] Linux x64: build with system ICU via find_package - [x] No duplicate InspectorProtocolObjects.h errors - [x] build/debug-local/bun-debug --version works Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
8.4 KiB
8.4 KiB