Google's bazel/blaze predates rust. It has the advantage of supporting multiple languages
Technically bazel can load any external files, but they must be tracked as workspace dependencies, which is more verbose:
E.g.
new_local_repository(
name = "system_libs",
# pkg-config --variable=libdir x11
path = "/usr/lib/x86_64-linux-gnu",
build_file_content = """
cc_library(
name = "x11",
srcs = ["libX11.so"],
visibility = ["//visibility:public"],
)
""",
)