mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-08 16:05:07 +00:00
138 lines
4.1 KiB
Python
138 lines
4.1 KiB
Python
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||
|
|
||
|
load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")
|
||
|
load(
|
||
|
"@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl",
|
||
|
"feature",
|
||
|
"flag_group",
|
||
|
"flag_set",
|
||
|
"tool_path",
|
||
|
)
|
||
|
|
||
|
all_compile_actions = [
|
||
|
ACTION_NAMES.c_compile,
|
||
|
ACTION_NAMES.cpp_compile,
|
||
|
]
|
||
|
|
||
|
all_link_actions = [
|
||
|
ACTION_NAMES.cpp_link_executable,
|
||
|
ACTION_NAMES.cpp_link_dynamic_library,
|
||
|
ACTION_NAMES.cpp_link_nodeps_dynamic_library,
|
||
|
]
|
||
|
|
||
|
def _impl(ctx):
|
||
|
tool_paths = [
|
||
|
tool_path(
|
||
|
name = "gcc",
|
||
|
path = "/opt/emsdk/upstream/emscripten/emcc",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "ld",
|
||
|
path = "/opt/emsdk/upstream/emscripten/emcc",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "ar",
|
||
|
path = "/opt/emsdk/upstream/emscripten/emar",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "cpp",
|
||
|
path = "/opt/emsdk/upstream/emscripten/em++",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "gcov",
|
||
|
path = "/bin/false",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "nm",
|
||
|
path = "/bin/false",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "objdump",
|
||
|
path = "/bin/false",
|
||
|
),
|
||
|
tool_path(
|
||
|
name = "strip",
|
||
|
path = "/bin/false",
|
||
|
),
|
||
|
]
|
||
|
|
||
|
features = [ # NEW
|
||
|
feature(
|
||
|
name = "default_compile_flags",
|
||
|
enabled = True,
|
||
|
flag_sets = [
|
||
|
flag_set(
|
||
|
actions = all_compile_actions,
|
||
|
flag_groups = ([
|
||
|
flag_group(
|
||
|
flags = [
|
||
|
"-O3",
|
||
|
"-msimd128",
|
||
|
"-s",
|
||
|
"USE_PTHREADS=0",
|
||
|
"-s",
|
||
|
"ERROR_ON_UNDEFINED_SYMBOLS=0",
|
||
|
"-s",
|
||
|
"STANDALONE_WASM=1",
|
||
|
],
|
||
|
),
|
||
|
]),
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
feature(
|
||
|
name = "default_linker_flags",
|
||
|
enabled = True,
|
||
|
flag_sets = [
|
||
|
flag_set(
|
||
|
actions = all_link_actions,
|
||
|
flag_groups = ([
|
||
|
flag_group(
|
||
|
flags = [
|
||
|
"-O3",
|
||
|
"-msimd128",
|
||
|
"-s",
|
||
|
"USE_PTHREADS=0",
|
||
|
"-s",
|
||
|
"ERROR_ON_UNDEFINED_SYMBOLS=0",
|
||
|
"-s",
|
||
|
"STANDALONE_WASM=1",
|
||
|
"-Wl,--export=__heap_base",
|
||
|
"-Wl,--export=__data_end",
|
||
|
],
|
||
|
),
|
||
|
]),
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
]
|
||
|
|
||
|
return cc_common.create_cc_toolchain_config_info(
|
||
|
ctx = ctx,
|
||
|
features = features, # NEW
|
||
|
cxx_builtin_include_directories = [
|
||
|
"/opt/emsdk/upstream/emscripten/system/include/libcxx",
|
||
|
"/opt/emsdk/upstream/emscripten/system/lib/libcxxabi/include",
|
||
|
"/opt/emsdk/upstream/emscripten/system/include",
|
||
|
"/opt/emsdk/upstream/emscripten/system/include/libc",
|
||
|
"/opt/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten",
|
||
|
"/opt/emsdk/upstream/lib/clang/12.0.0/include/",
|
||
|
],
|
||
|
toolchain_identifier = "wasm-emsdk",
|
||
|
host_system_name = "i686-unknown-linux-gnu",
|
||
|
target_system_name = "wasm32-unknown-emscripten",
|
||
|
target_cpu = "wasm32",
|
||
|
target_libc = "unknown",
|
||
|
compiler = "emsdk",
|
||
|
abi_version = "unknown",
|
||
|
abi_libc_version = "unknown",
|
||
|
tool_paths = tool_paths,
|
||
|
)
|
||
|
|
||
|
emsdk_toolchain_config = rule(
|
||
|
implementation = _impl,
|
||
|
attrs = {},
|
||
|
provides = [CcToolchainConfigInfo],
|
||
|
)
|