diff options
author | Luke Channings <461449+LukeChannings@users.noreply.github.com> | 2022-10-15 16:21:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-15 20:51:04 +0530 |
commit | fa22956a8616c34482b10bb3ae1aed76ad017c3e (patch) | |
tree | 72faa8304d74bf8ec910e8bfcd9af7cf80a5cca2 /tools/napi/generate_symbols_lists.js | |
parent | e32719c2915aee9055327609ef03cf9bfc2b1785 (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-x | tools/napi/generate_symbols_lists.js | 20 |
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 }); +} |