gh-95853: Add script to automate WASM build (GH-95828)

Automate WASM build with a new Python script. The script provides
several build profiles with configure flags for Emscripten flavors
and WASI. The script can detect and use Emscripten SDK and WASI SDK from
default locations or env vars.

``configure`` now detects Node arguments and creates HOSTRUNNER
arguments for Node 16. It also sets correct arguments for
``wasm64-emscripten``.

Co-authored-by: Brett Cannon <brett@python.org>
This commit is contained in:
Christian Heimes 2022-08-13 21:56:08 +02:00 committed by GitHub
parent 0b329f4f03
commit 32ac98e899
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 828 additions and 22 deletions

View file

@ -2789,14 +2789,18 @@ EM_JS(char *, _Py_emscripten_runtime, (void), {
if (typeof navigator == 'object') {
info = navigator.userAgent;
} else if (typeof process == 'object') {
info = "Node.js ".concat(process.version)
info = "Node.js ".concat(process.version);
} else {
info = "UNKNOWN"
info = "UNKNOWN";
}
var len = lengthBytesUTF8(info) + 1;
var res = _malloc(len);
stringToUTF8(info, res, len);
if (res) stringToUTF8(info, res, len);
#if __wasm64__
return BigInt(res);
#else
return res;
#endif
});
static PyObject *