commit | 15ee5d89f4b3211630aa2987c2810be994c40195 | [log] [tgz] |
---|---|---|
author | Lukasz Anforowicz <lukasza@google.com> | Fri Feb 17 12:49:05 2023 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Feb 17 12:49:52 2023 -0800 |
tree | f666160e327cf5744af87aebc80247eaedae28a7 | |
parent | 56d94fc2ef55a2524134ba2691e41e3e97ef322a [diff] |
Propagate `--crate-name` into `cc_bindings_from_rs`. This CL is needed to support running `cc_bindings_from_rs` on any Rust crate where the name of the crate is not based on the basename of the crate root (the name of the main `.rs` file). This CL can be seen as a *small* step toward replicating all `rustc` cmdline arguments into the invocation of `cc_bindings_from_rs`. This CL makes the following changes: * Adds `--crate-name` propagation to `cc_bindings_from_rs/bazel_support/cc_bindings_from_rust_rule.bzl` * Adds tests that exercise the `--crate-name` support and would fail without the change above: `cc_bindings_from_rs/test/bazel/crate_name` * Moves tests from `cc_bindings_from_rs/test/bazel_unit_tests` to `cc_bindings_from_rs/test/bazel/unit_tests`. This helps to keep the Bazel-focused tests under `cc_bindings_from_rs/test/bazel`. PiperOrigin-RevId: 510499869
Extremely experimental interop tooling for C++ and Rust.
Please don‘t use, this is an experiment and we don’t yet know where will it take us. There will be breaking changes without warning. Unfortunately, we can't take contributions at this point.
$ apt install clang lld bazel $ git clone git@github.com:google/crubit.git $ cd crubit $ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
$ git clone https://github.com/llvm/llvm-project $ cd llvm-project $ CC=clang CXX=clang++ cmake -S llvm -B build -DLLVM_ENABLE_PROJECTS='clang' -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install $ cmake --build build -j $ # wait... $ cmake --install build $ cd ../crubit $ LLVM_INSTALL_PATH=../llvm-project/install bazel build //rs_bindings_from_cc:rs_bindings_from_cc_impl