133d722a9Sopenharmony_ciexport_file(
233d722a9Sopenharmony_ci    name = ".clippy.toml",
333d722a9Sopenharmony_ci    visibility = ["toolchains//:rust"],
433d722a9Sopenharmony_ci)
533d722a9Sopenharmony_ci
633d722a9Sopenharmony_cirust_library(
733d722a9Sopenharmony_ci    name = "cxx",
833d722a9Sopenharmony_ci    srcs = glob(["src/**/*.rs"]),
933d722a9Sopenharmony_ci    doc_deps = [
1033d722a9Sopenharmony_ci        ":cxx-build",
1133d722a9Sopenharmony_ci    ],
1233d722a9Sopenharmony_ci    edition = "2018",
1333d722a9Sopenharmony_ci    features = [
1433d722a9Sopenharmony_ci        "alloc",
1533d722a9Sopenharmony_ci        "std",
1633d722a9Sopenharmony_ci    ],
1733d722a9Sopenharmony_ci    visibility = ["PUBLIC"],
1833d722a9Sopenharmony_ci    deps = [
1933d722a9Sopenharmony_ci        ":core",
2033d722a9Sopenharmony_ci        ":cxxbridge-macro",
2133d722a9Sopenharmony_ci    ],
2233d722a9Sopenharmony_ci)
2333d722a9Sopenharmony_ci
2433d722a9Sopenharmony_cialias(
2533d722a9Sopenharmony_ci    name = "codegen",
2633d722a9Sopenharmony_ci    actual = ":cxxbridge",
2733d722a9Sopenharmony_ci    visibility = ["PUBLIC"],
2833d722a9Sopenharmony_ci)
2933d722a9Sopenharmony_ci
3033d722a9Sopenharmony_cirust_binary(
3133d722a9Sopenharmony_ci    name = "cxxbridge",
3233d722a9Sopenharmony_ci    srcs = glob(["gen/cmd/src/**/*.rs"]) + [
3333d722a9Sopenharmony_ci        "gen/cmd/src/gen",
3433d722a9Sopenharmony_ci        "gen/cmd/src/syntax",
3533d722a9Sopenharmony_ci    ],
3633d722a9Sopenharmony_ci    edition = "2018",
3733d722a9Sopenharmony_ci    deps = [
3833d722a9Sopenharmony_ci        "//third-party:clap",
3933d722a9Sopenharmony_ci        "//third-party:codespan-reporting",
4033d722a9Sopenharmony_ci        "//third-party:proc-macro2",
4133d722a9Sopenharmony_ci        "//third-party:quote",
4233d722a9Sopenharmony_ci        "//third-party:syn",
4333d722a9Sopenharmony_ci    ],
4433d722a9Sopenharmony_ci)
4533d722a9Sopenharmony_ci
4633d722a9Sopenharmony_cicxx_library(
4733d722a9Sopenharmony_ci    name = "core",
4833d722a9Sopenharmony_ci    srcs = ["src/cxx.cc"],
4933d722a9Sopenharmony_ci    exported_headers = {
5033d722a9Sopenharmony_ci        "cxx.h": "include/cxx.h",
5133d722a9Sopenharmony_ci    },
5233d722a9Sopenharmony_ci    header_namespace = "rust",
5333d722a9Sopenharmony_ci    preferred_linkage = "static",
5433d722a9Sopenharmony_ci    visibility = ["PUBLIC"],
5533d722a9Sopenharmony_ci)
5633d722a9Sopenharmony_ci
5733d722a9Sopenharmony_cirust_library(
5833d722a9Sopenharmony_ci    name = "cxxbridge-macro",
5933d722a9Sopenharmony_ci    srcs = glob(["macro/src/**/*.rs"]) + ["macro/src/syntax"],
6033d722a9Sopenharmony_ci    doctests = False,
6133d722a9Sopenharmony_ci    edition = "2018",
6233d722a9Sopenharmony_ci    proc_macro = True,
6333d722a9Sopenharmony_ci    deps = [
6433d722a9Sopenharmony_ci        "//third-party:proc-macro2",
6533d722a9Sopenharmony_ci        "//third-party:quote",
6633d722a9Sopenharmony_ci        "//third-party:syn",
6733d722a9Sopenharmony_ci    ],
6833d722a9Sopenharmony_ci)
6933d722a9Sopenharmony_ci
7033d722a9Sopenharmony_cirust_library(
7133d722a9Sopenharmony_ci    name = "cxx-build",
7233d722a9Sopenharmony_ci    srcs = glob(["gen/build/src/**/*.rs"]) + [
7333d722a9Sopenharmony_ci        "gen/build/src/gen",
7433d722a9Sopenharmony_ci        "gen/build/src/syntax",
7533d722a9Sopenharmony_ci    ],
7633d722a9Sopenharmony_ci    doctests = False,
7733d722a9Sopenharmony_ci    edition = "2018",
7833d722a9Sopenharmony_ci    deps = [
7933d722a9Sopenharmony_ci        "//third-party:cc",
8033d722a9Sopenharmony_ci        "//third-party:codespan-reporting",
8133d722a9Sopenharmony_ci        "//third-party:once_cell",
8233d722a9Sopenharmony_ci        "//third-party:proc-macro2",
8333d722a9Sopenharmony_ci        "//third-party:quote",
8433d722a9Sopenharmony_ci        "//third-party:scratch",
8533d722a9Sopenharmony_ci        "//third-party:syn",
8633d722a9Sopenharmony_ci    ],
8733d722a9Sopenharmony_ci)
8833d722a9Sopenharmony_ci
8933d722a9Sopenharmony_cirust_library(
9033d722a9Sopenharmony_ci    name = "cxx-gen",
9133d722a9Sopenharmony_ci    srcs = glob(["gen/lib/src/**/*.rs"]) + [
9233d722a9Sopenharmony_ci        "gen/lib/src/gen",
9333d722a9Sopenharmony_ci        "gen/lib/src/syntax",
9433d722a9Sopenharmony_ci    ],
9533d722a9Sopenharmony_ci    edition = "2018",
9633d722a9Sopenharmony_ci    visibility = ["PUBLIC"],
9733d722a9Sopenharmony_ci    deps = [
9833d722a9Sopenharmony_ci        "//third-party:cc",
9933d722a9Sopenharmony_ci        "//third-party:codespan-reporting",
10033d722a9Sopenharmony_ci        "//third-party:proc-macro2",
10133d722a9Sopenharmony_ci        "//third-party:quote",
10233d722a9Sopenharmony_ci        "//third-party:syn",
10333d722a9Sopenharmony_ci    ],
10433d722a9Sopenharmony_ci)
105