load("@no_std_crate_index//:defs.bzl", "aliases", "all_crate_deps") load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") load( "@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_shared_library", ) rust_shared_library( name = "lib", srcs = [ "lib.rs", "no_std.rs", ], crate_features = select({ "@rules_rust//:is_no_std": [], "//conditions:default": ["std"], }), edition = "2021", deps = ["custom_alloc"], ) rust_library( name = "custom_alloc", srcs = ["alloc.rs"], aliases = aliases(), deps = all_crate_deps(normal = True), ) cc_library( name = "nostartfiles", linkopts = ["-nostartfiles"], ) rust_binary( name = "main", srcs = ["main.rs"], aliases = aliases(), deps = all_crate_deps(normal = True) + [":nostartfiles"], ) cc_test( name = "no_std_cc_test", srcs = ["main.c"], deps = [":lib"], )