PR-URL: https://github.com/nodejs/node/pull/61898 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
192 lines
6.5 KiB
Python
192 lines
6.5 KiB
Python
module(
|
|
name = "v8",
|
|
version = "0.0.0",
|
|
)
|
|
|
|
bazel_dep(name = "bazel_skylib", version = "1.8.1")
|
|
bazel_dep(name = "rules_cc", version = "0.2.0")
|
|
bazel_dep(name = "rules_python", version = "1.0.0")
|
|
bazel_dep(name = "platforms", version = "1.0.0")
|
|
bazel_dep(name = "abseil-cpp", version = "20250814.0")
|
|
bazel_dep(name = "highway", version = "1.2.0")
|
|
|
|
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
|
|
pip.parse(
|
|
hub_name = "v8_python_deps",
|
|
python_version = "3.11",
|
|
requirements_lock = "//:bazel/requirements.txt",
|
|
extra_pip_args = [
|
|
"--require-hashes",
|
|
"--index-url=https://pypi.org/simple",
|
|
],
|
|
)
|
|
use_repo(pip, "v8_python_deps")
|
|
|
|
# Define the local LLVM toolchain repository
|
|
llvm_toolchain_repository = use_repo_rule("//bazel/toolchain:llvm_repository.bzl", "llvm_toolchain_repository")
|
|
|
|
llvm_toolchain_repository(
|
|
name = "llvm_toolchain",
|
|
path = "third_party/llvm-build/Release+Asserts",
|
|
config_file_content = """
|
|
load("@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "feature", "flag_group", "flag_set", "tool_path")
|
|
|
|
def _impl(ctx):
|
|
tool_paths = [
|
|
tool_path(name = "gcc", path = "bin/clang"),
|
|
tool_path(name = "ld", path = "bin/lld"),
|
|
tool_path(name = "ar", path = "bin/llvm-ar"),
|
|
tool_path(name = "cpp", path = "bin/clang++"),
|
|
tool_path(name = "gcov", path = "/bin/false"),
|
|
tool_path(name = "nm", path = "bin/llvm-nm"),
|
|
tool_path(name = "objdump", path = "bin/llvm-objdump"),
|
|
tool_path(name = "strip", path = "bin/llvm-strip"),
|
|
]
|
|
|
|
features = [
|
|
feature(
|
|
name = "default_compile_flags",
|
|
enabled = True,
|
|
flag_sets = [
|
|
flag_set(
|
|
actions = [
|
|
"c-compile",
|
|
"c++-compile",
|
|
"c++-header-parsing",
|
|
"c++-module-compile",
|
|
"c++-module-codegen",
|
|
"linkstamp-compile",
|
|
"assemble",
|
|
"preprocess-assemble",
|
|
],
|
|
flag_groups = [
|
|
flag_group(
|
|
flags = [
|
|
"--sysroot={WORKSPACE_ROOT}/build/linux/debian_bullseye_amd64-sysroot",
|
|
"-nostdinc++",
|
|
"-isystem",
|
|
"{WORKSPACE_ROOT}/buildtools/third_party/libc++",
|
|
"-isystem",
|
|
"{WORKSPACE_ROOT}/third_party/libc++/src/include",
|
|
"-isystem",
|
|
"{WORKSPACE_ROOT}/third_party/libc++abi/src/include",
|
|
"-isystem",
|
|
"{WORKSPACE_ROOT}/third_party/libc++/src/src",
|
|
"-isystem",
|
|
"{WORKSPACE_ROOT}/third_party/llvm-libc/src",
|
|
"-D_LIBCPP_HARDENING_MODE_DEFAULT=_LIBCPP_HARDENING_MODE_NONE",
|
|
"-DLIBC_NAMESPACE=__llvm_libc_cr",
|
|
],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
feature(
|
|
name = "default_linker_flags",
|
|
enabled = True,
|
|
flag_sets = [
|
|
flag_set(
|
|
actions = [
|
|
"c++-link-executable",
|
|
"c++-link-dynamic-library",
|
|
"c++-link-nodeps-dynamic-library",
|
|
],
|
|
flag_groups = [
|
|
flag_group(
|
|
flags = [
|
|
"--sysroot={WORKSPACE_ROOT}/build/linux/debian_bullseye_amd64-sysroot",
|
|
"-fuse-ld=lld",
|
|
"-lm",
|
|
"-lpthread",
|
|
],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
]
|
|
|
|
return cc_common.create_cc_toolchain_config_info(
|
|
ctx = ctx,
|
|
features = features,
|
|
cxx_builtin_include_directories = [
|
|
"{WORKSPACE_ROOT}/buildtools/third_party/libc++",
|
|
"{WORKSPACE_ROOT}/third_party/libc++/src/include",
|
|
"{WORKSPACE_ROOT}/third_party/libc++abi/src/include",
|
|
"{WORKSPACE_ROOT}/third_party/libc++/src/src",
|
|
"{WORKSPACE_ROOT}/third_party/llvm-libc/src",
|
|
"{WORKSPACE_ROOT}/third_party/llvm-build/Release+Asserts/lib/clang/22/include",
|
|
"{WORKSPACE_ROOT}/third_party/llvm-build/Release+Asserts/lib/clang/23/include",
|
|
"{WORKSPACE_ROOT}/build/linux/debian_bullseye_amd64-sysroot/usr/include",
|
|
"{WORKSPACE_ROOT}/build/linux/debian_bullseye_amd64-sysroot/usr/local/include",
|
|
],
|
|
toolchain_identifier = "local_clang",
|
|
host_system_name = "local",
|
|
target_system_name = "local",
|
|
target_cpu = "k8",
|
|
target_libc = "unknown",
|
|
compiler = "clang",
|
|
abi_version = "unknown",
|
|
abi_libc_version = "unknown",
|
|
tool_paths = tool_paths,
|
|
)
|
|
|
|
cc_toolchain_config = rule(
|
|
implementation = _impl,
|
|
attrs = {},
|
|
provides = [CcToolchainConfigInfo],
|
|
)
|
|
""",
|
|
build_file_content = """
|
|
load(":cc_toolchain_config.bzl", "cc_toolchain_config")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
filegroup(
|
|
name = "all_files",
|
|
srcs = glob(["**/*"]),
|
|
)
|
|
|
|
filegroup(name = "empty")
|
|
|
|
cc_toolchain_config(name = "k8_toolchain_config")
|
|
|
|
cc_toolchain(
|
|
name = "k8_toolchain",
|
|
all_files = ":all_files",
|
|
ar_files = ":all_files",
|
|
compiler_files = ":all_files",
|
|
dwp_files = ":empty",
|
|
linker_files = ":all_files",
|
|
objcopy_files = ":all_files",
|
|
strip_files = ":all_files",
|
|
supports_param_files = 0,
|
|
toolchain_config = ":k8_toolchain_config",
|
|
toolchain_identifier = "local_clang",
|
|
)
|
|
|
|
toolchain(
|
|
name = "cc_toolchain_k8",
|
|
exec_compatible_with = [
|
|
"@platforms//cpu:x86_64",
|
|
"@platforms//os:linux",
|
|
],
|
|
target_compatible_with = [
|
|
"@platforms//cpu:x86_64",
|
|
"@platforms//os:linux",
|
|
],
|
|
toolchain = ":k8_toolchain",
|
|
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
|
|
)
|
|
""",
|
|
)
|
|
|
|
register_toolchains("@llvm_toolchain//:cc_toolchain_k8")
|
|
|
|
# Define local repository for libc++ from third_party sources
|
|
libcxx_repository = use_repo_rule("//bazel/toolchain:libcxx_repository.bzl", "libcxx_repository")
|
|
|
|
libcxx_repository(
|
|
name = "libcxx",
|
|
)
|