1load("@bazel_skylib//rules:write_file.bzl", "write_file")
2load("//crate_universe:defs.bzl", "crate", "render_config", "splicing_config")
3
4# buildifier: disable=bzl-visibility
5load("//crate_universe/private:generate_utils.bzl", "compile_config")
6
7# buildifier: disable=bzl-visibility
8load("//crate_universe/private:splicing_utils.bzl", "compile_splicing_manifest")
9
10write_file(
11    name = "config",
12    out = "config.json",
13    content = [json.encode(
14        compile_config(
15            cargo_config = None,
16            crate_annotations = {
17                "rand": [crate.annotation(
18                    crate_features = ["small_rng"],
19                    version = "0.8.5",
20                )],
21            },
22            generate_binaries = False,
23            generate_build_scripts = False,
24            generate_target_compatible_with = True,
25            render_config = json.decode(render_config(
26                platforms_template = "//custom/platform:{triple}",
27                regen_command = "cargo_bazel_regen_command",
28            )),
29            repository_name = "mock_config",
30            supported_platform_triples = [
31                "x86_64-unknown-linux-gnu",
32                "x86_64-pc-windows-msvc",
33                "x86_64-apple-darwin",
34            ],
35        ),
36    ).strip()],
37    newline = "unix",
38)
39
40write_file(
41    name = "splicing_manifest",
42    out = "splicing_manifest.json",
43    content = [json.encode(compile_splicing_manifest(
44        cargo_config_path = "/tmp/abs/path/workspace/.cargo/config.toml",
45        manifests = {
46            "${build_workspace_directory}/submod/Cargo.toml": "//submod:Cargo.toml",
47            "${output_base}/external_crate/Cargo.toml": "@external_crate//:Cargo.toml",
48            "/tmp/abs/path/workspace/Cargo.toml": "//:Cargo.toml",
49        },
50        packages = {
51            "cargo_toml": crate.spec(
52                git = "https://gitlab.com/crates.rs/cargo_toml.git",
53                tag = "v0.15.2",
54            ),
55            "cfg-if": crate.spec(
56                git = "https://github.com/rust-lang/cfg-if.git",
57                rev = "b9c2246a",
58            ),
59            "log": crate.spec(
60                branch = "master",
61                git = "https://github.com/rust-lang/log.git",
62            ),
63            "rand": crate.spec(
64                default_features = False,
65                features = ["small_rng"],
66                version = "0.8.5",
67            ),
68        },
69        splicing_config = dict(json.decode(splicing_config(
70            resolver_version = "2",
71        ))),
72    )).strip()],
73    newline = "unix",
74)
75
76filegroup(
77    name = "serialized_configs",
78    srcs = [
79        "config.json",
80        "splicing_manifest.json",
81    ],
82    visibility = ["//crate_universe:__pkg__"],
83)
84