• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@rules_cc//cc:defs.bzl", "cc_library")
2load("@rules_rust//rust:defs.bzl", "rust_library")
3
4rust_library(
5    name = "cxx",
6    srcs = glob(["src/**/*.rs"]),
7    crate_features = [
8        "alloc",
9        "std",
10    ],
11    proc_macro_deps = [
12        "@cxx_deps//:cxxbridge-macro",
13    ],
14    visibility = ["//visibility:public"],
15    deps = [
16      ":core-lib",
17      "@cxx_deps//:foldhash",
18    ],
19)
20
21config_setting(
22    name = "linux_x64",
23    constraint_values = [
24        "@platforms//cpu:x86_64",
25        "@platforms//os:linux",
26    ],
27)
28
29cc_library(
30    name = "core-lib",
31    srcs = [
32        "src/cxx.cc",
33    ] + select(
34        {
35            ":linux_x64": ["@clang_linux_amd64//:link_libs"],
36            "//conditions:default": [],
37        },
38    ),
39    hdrs = ["include/cxx.h"],
40    visibility = ["//visibility:public"],
41
42    # Allow using the same include path as in Chromium:
43    # `#include "third_party/rust/cxx/v1/cxx.h"`.
44    strip_include_prefix = "include/",
45    include_prefix = "third_party/rust/cxx/v1/",
46)
47