1*d4726bddSHONG Yifanload("@rules_cc//cc:defs.bzl", "cc_library") 2*d4726bddSHONG Yifanload("@rules_rust//rust:defs.bzl", "rust_binary") 3*d4726bddSHONG Yifan 4*d4726bddSHONG Yifan# A rust_binary that depends on two native libs with the same name. 5*d4726bddSHONG Yifan# See https://github.com/bazelbuild/rules_rust/issues/840. 6*d4726bddSHONG Yifanrust_binary( 7*d4726bddSHONG Yifan name = "bin_with_same_name_deps", 8*d4726bddSHONG Yifan srcs = ["bin.rs"], 9*d4726bddSHONG Yifan deps = [ 10*d4726bddSHONG Yifan "//ambiguous_deps/x:exc", 11*d4726bddSHONG Yifan "//ambiguous_deps/y:exc", 12*d4726bddSHONG Yifan ], 13*d4726bddSHONG Yifan) 14*d4726bddSHONG Yifan 15*d4726bddSHONG Yifan# A rust_binary that depends on a native library with a name that doesn't 16*d4726bddSHONG Yifan# match the `lib<name>.a` pattern on linux. 17*d4726bddSHONG Yifanrust_binary( 18*d4726bddSHONG Yifan name = "nonstandard_name_bin", 19*d4726bddSHONG Yifan srcs = ["nonstandard_name_bin.rs"], 20*d4726bddSHONG Yifan deps = [":nonstandard_name_intermediate"], 21*d4726bddSHONG Yifan) 22*d4726bddSHONG Yifan 23*d4726bddSHONG Yifancc_library( 24*d4726bddSHONG Yifan name = "nonstandard_name_cc_lib", 25*d4726bddSHONG Yifan srcs = ["cc_library_with_func.cc"], 26*d4726bddSHONG Yifan) 27*d4726bddSHONG Yifan 28*d4726bddSHONG Yifangenrule( 29*d4726bddSHONG Yifan name = "nonstandard_name_gen", 30*d4726bddSHONG Yifan srcs = [":nonstandard_name_cc_lib"], 31*d4726bddSHONG Yifan outs = ["nonstandard_name_gen.a"], 32*d4726bddSHONG Yifan # Copy the first member (libnonstandard_name_cc_lib.a) from the srcs to the 33*d4726bddSHONG Yifan # output nonstandard_name_gen.a. 34*d4726bddSHONG Yifan cmd = "cp $$(awk '{print $$1}' <<< '$(SRCS)') $@", 35*d4726bddSHONG Yifan) 36*d4726bddSHONG Yifan 37*d4726bddSHONG Yifancc_library( 38*d4726bddSHONG Yifan name = "nonstandard_name_intermediate", 39*d4726bddSHONG Yifan srcs = [":nonstandard_name_gen.a"], 40*d4726bddSHONG Yifan) 41