-
Notifications
You must be signed in to change notification settings - Fork 108
Publish C libraries during release #2428
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
Conversation
015a233 to
43f4ed9
Compare
43f4ed9 to
f485a78
Compare
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 adds precompiled C libraries (static and dynamic) to the release artifacts across all supported platforms (Linux x86_64/arm64, macOS arm64, and Windows x86_64). The changes enable downstream projects, particularly the go bindings, to use these precompiled libraries.
- Builds and publishes C library artifacts (.a static libraries and .so/.dylib/.dll dynamic libraries) for Linux, macOS, and Windows
- Includes the nickel_lang.h header file in Linux artifacts
- Configures Windows builds to use MinGW toolchain for cgo compatibility
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| bash ./scripts/shrink_archive.sh -o libnickel_lang-x86_64-windows-mingw.a \ | ||
| ./target/x86_64-pc-windows-gnu/release/libnickel_lang.a | ||
| cp ./target/x86_64-pc-windows-gnu/release/nickel_lang.dll libnickel_lang-x86_64-windows-mingw.dll | ||
| - name: "Upload binaries as release assets" |
Copilot
AI
Nov 20, 2025
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.
[nitpick] The step name should be updated to "Upload binaries/libraries as release assets" to match the updated names in the Linux (line 51) and macOS (line 121) jobs, since this step now uploads both binaries and libraries.
| - name: "Upload binaries as release assets" | |
| - name: "Upload binaries/libraries as release assets" |
Co-authored-by: Copilot <[email protected]>
This adds precompiled C libraries to the release artifacts. I've tested here that the resulting static libraries pass the go bindings' tests.