commit | ca2cc90e455ab14a6e8932fa967182b12f1c154d | [log] [tgz] |
---|---|---|
author | Rosica Dejanovska <rosica@google.com> | Wed Sep 28 06:18:33 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Sep 28 06:19:06 2022 -0700 |
tree | 3db9889ce03131254d744adb41fe2e74570f064d | |
parent | e3c1d8ed549c20a0a058f3515429bf76a45f3629 [diff] |
Implement `cc_import` macro This cl brings us to being able to use `cc_import` macro, with the following caveats: * The import_macro needs changes upstream to make some of its structs and functions public * The aspect currently does not propagate the needed `CC_IMPORT_NAMESPACES` environment variable * We don't do name mangling as in the `import` macro. * The `cc_import` macro is not yet an implicit dependency of `rust_*` rules, so one needs to pass it into `deps` PiperOrigin-RevId: 477432818
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