summaryrefslogtreecommitdiff
path: root/tools/napi/generate_symbols_lists.js
diff options
context:
space:
mode:
authorLuke Channings <461449+LukeChannings@users.noreply.github.com>2022-10-15 16:21:04 +0100
committerGitHub <noreply@github.com>2022-10-15 20:51:04 +0530
commitfa22956a8616c34482b10bb3ae1aed76ad017c3e (patch)
tree72faa8304d74bf8ec910e8bfcd9af7cf80a5cca2 /tools/napi/generate_symbols_lists.js
parente32719c2915aee9055327609ef03cf9bfc2b1785 (diff)
refactor(build): better handle old glibc (#16238)
Follow-up to #16208. - Refactors build.rs behaviour to use `-exported_symbols_list` / `--export-dynamic-symbol-list` - Since all build systems now rely on a symbols list file, I have added `generate_exported_symbols_list`, which derives the symbol list file depending on the platform, which makes `tools/napi/generate_link_win.js` redundant. - Fixes a missed instance of `i8` being used instead of `c_char` Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
Diffstat (limited to 'tools/napi/generate_symbols_lists.js')
-rwxr-xr-xtools/napi/generate_symbols_lists.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/napi/generate_symbols_lists.js b/tools/napi/generate_symbols_lists.js
new file mode 100755
index 000000000..3e41c3f06
--- /dev/null
+++ b/tools/napi/generate_symbols_lists.js
@@ -0,0 +1,20 @@
+#!/usr/bin/env -S deno run --unstable --allow-read --allow-write
+// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
+
+import exports from "../../cli/napi_sym/symbol_exports.json" assert {
+ type: "json",
+};
+
+for await (const os of ["linux", "macos", "windows"]) {
+ let def = os === "windows" ? "LIBRARY\nEXPORTS\n" : "";
+ const prefix = os === "windows" ? " " : os === "macos" ? "_" : "";
+ for (const symbol of exports.symbols) {
+ def += `${prefix}${symbol}\n`;
+ }
+
+ const defUrl = new URL(
+ `../../cli/generated_symbol_exports_list_${os}.def`,
+ import.meta.url,
+ );
+ await Deno.writeTextFile(defUrl.pathname, def, { create: true });
+}