feat: allow customization of build environment#2403
Merged
KhafraDev merged 1 commit intonodejs:mainfrom Dec 13, 2023
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This allows for the WASM artifacts to be built elsewhere than only in the alpine-based node container.
Rationale
Pre-built WASM artifacts are often a no-go when creating packages for Linux distributions; they need to be rebuilt from source on trusted build system by the package maintainer. This PR allows me to easily tweak the build parameters and flags for the WASM build to do just that.
Changes
The
build/wasm.jsscript now checks for presence and content of several related environment variables (WASM_CC,WASM_CFLAGS,WASM_LDFLAGS, andWASM_LDLIBS; the names mirror those traditionally used in C Makefiles). If present, content of these variables override some of the compilation flags that are directly dependent on the build environment (i.e.--targetand--sysroot).Status
Note: This is a minimal change that does what I need. I was also toying with the idea to convert the build process (without container management) to separate Makefile; this would enable the WASM build to not require nodejs on the build machine. I'm not sure this is worth it or if it's anything you would want to maintain; let me know what you think.