xref: /aosp_15_r20/external/XNNPACK/emscripten.bzl (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1"""Emscripten-specific build definitions for XNNPACK."""
2
3def xnnpack_emscripten_minimal_linkopts():
4    """Minimal Emscripten-specific linkopts for binaries."""
5    return [
6        "-s ASSERTIONS=0",
7        "-s ENVIRONMENT=node,shell,web",
8        "-s ERROR_ON_UNDEFINED_SYMBOLS=1",
9        "-s EXIT_RUNTIME=1",
10    ]
11
12def xnnpack_emscripten_test_linkopts():
13    """Emscripten-specific linkopts for unit tests."""
14    return [
15        "-s ASSERTIONS=2",
16        "-s ENVIRONMENT=node,shell,web",
17        "-s ERROR_ON_UNDEFINED_SYMBOLS=1",
18        "-s DEMANGLE_SUPPORT=1",
19        "-s EXIT_RUNTIME=1",
20        "-s ALLOW_MEMORY_GROWTH=1",
21        "--pre-js $(location :preamble.js.lds)",
22    ]
23
24def xnnpack_emscripten_benchmark_linkopts():
25    """Emscripten-specific linkopts for benchmarks."""
26    return [
27        "-s ASSERTIONS=1",
28        "-s ENVIRONMENT=node,shell,web",
29        "-s ERROR_ON_UNDEFINED_SYMBOLS=1",
30        "-s EXIT_RUNTIME=1",
31        "-s ALLOW_MEMORY_GROWTH=1",
32        "-s TOTAL_MEMORY=445644800",  # 425M
33        "--pre-js $(location :preamble.js.lds)",
34    ]
35
36def xnnpack_emscripten_deps():
37    """Emscripten-specific dependencies for unit tests and benchmarks."""
38    return [
39        ":preamble.js.lds",
40    ]
41