-
-
Notifications
You must be signed in to change notification settings - Fork 980
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
CI: Add CMake a preset for "official" builds, and use it for js
artifacts
#2225
Conversation
71d5cd7
to
29f36df
Compare
CMakePresets.json
Outdated
@@ -87,6 +87,18 @@ | |||
"generator": "Visual Studio 17 2022", | |||
"toolset": "ClangCL" | |||
}, | |||
{ | |||
"name": "Official", |
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.
Not entirely sure about naming this "official", since everything in this repository and its results could be considered "official"... maybe "distribution" is a better fit?
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.
Yeah the name "official" just came from a similar config that Chromium uses, open to bikeshedding here
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.
As briefly discussed, ReleaseStatic seems appropriate, I'll push up the change
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.
Is the intent to have a ReleaseStatic config, or do you want a config for what you'll eventually want to ship (which, in time, will probably also include things like PGO and LTO or PLO, and which will likely be too slow to use outside of builds for distribution)? If the latter, maybe don't make the name too specific to what it currently is.
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.
Good point, it's the latter. So, Distribution instead
29f36df
to
ec6488a
Compare
This adds the vcpkg triplets and CMake preset to perform release builds for distribution. These builds are fully static, and currently intended to be used for the `js` ESVU release. In the future, linking everything statically into the final binary is probably not what we will do for released Ladybird builds. Instead, we may have a "libladybird.so", which is then linked into the binary. But this should be fine for `js` for now.
We have optimizations that only work with clang (namely, our use of FLATTEN in the bytecode interpreter).
ec6488a
to
2d70c99
Compare
This adds the vcpkg triplets and CMake preset to perform official builds for distribution. These builds are fully static, and currently intended to be used for the
js
ESVU release.In the future, linking everything statically into the final binary is probably not what we will do for released Ladybird builds. Instead, we may have a "libladybird.so", which is then linked into the binary. But this should be fine for
js
for now.Example build:
https://github.com/trflynn89/ladybird/actions/runs/11743377506