-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[browser] build browserhost in clr.runtime subset #120666
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
base: main
Are you sure you want to change the base?
Conversation
Tagging subscribers to this area: @vitek-karas, @agocke, @VSadov |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the browser build system for CoreCLR runtime to integrate browserhost build into the clr.runtime subset. The key changes consolidate browser-specific assets into a shared framework directory and streamline the CMake build configuration.
Key changes:
- Consolidate JavaScript/TypeScript build logic into a common CMakeLists.txt file
- Split browserhost into static library (libBrowserHost.a) for customer linking
- Install browser runtime assets to sharedFramework directory for consumption
Reviewed Changes
Copilot reviewed 35 out of 37 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
src/native/rollup.config.js | Updates output paths to use staticLibDestination variable |
src/native/rollup.config.defines.js | Adds staticLibDestination export and normalizes configuration values |
src/native/libs/build-native.proj | Refactors native build arguments and removes hardcoded ICU/TZD paths |
src/native/libs/Common/JavaScript/CMakeLists.txt | New consolidated CMake file for JavaScript build logic |
src/native/libs/System.Native.Browser/CMakeLists.txt | Removes rollup build logic, delegates to Common/JavaScript |
src/native/corehost/browserhost/host/CMakeLists.txt | New CMake file for static browserhost library |
src/native/corehost/browserhost/CMakeLists.txt | Refactors to use static library and updated paths |
src/coreclr/CMakeLists.txt | Updates WASM build configuration and paths |
eng/native.props | New shared properties file for native build configuration |
eng/liveBuilds.targets | Updates CoreCLR browser runtime file paths |
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
This is version B)
eng/native.props
corehost/build.cmd
STATIC_LIB_DESTINATION
and move all JS outputs thereSystem.Native.Browser-Rollup
andSystem.Native.Browser-NpmInstall
into it's ownCommon\JavaScript\CMakeLists.txt
browserhost
intolibBrowserHost.a
, so that it could be linked later on customer machinesharedFramework
libcoreclr_static
,libclrinterpreter
,libgcinfo_unix_wasm
,libcoreclrminipal
,libnativeresourcestring
,libcoreclrpal
libSystem.Native
,libSystem.Native.TimeZoneData
,libSystem.Native.TimeZoneData.Invariant
,libSystem.Globalization.Native
,libicuuc
,libicui18n
,libicudata
libSystem.IO.Compression.Native
,libz
libSystem.Native.Browser
,libSystem.Runtime.InteropServices.JavaScript
libBrowserHost
,dotnet.js
,dotnet.runtime.js
minipal
eng/liveBuilds.targets
to consume it from$(CoreCLRSharedFrameworkDir)
Fixes #120188