commit | 5fecde5d39becc302c8c0c4828ecd2a34ae98a46 | [log] [tgz] |
---|---|---|
author | Devin Jeanpierre <jeanpierreda@google.com> | Wed Sep 14 06:53:39 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Sep 14 06:54:22 2022 -0700 |
tree | 36b3df794d2784c3ca80edffae1601a7004141a5 | |
parent | b2c058be23814881186b3cda2c317828b986c1aa [diff] |
Partially-support nested type aliases: use the underlying type instead. This allows for functions and types which use those type aliases to be used, even if the type aliases themselves can't be used directly. This should help unblock the use of STL containers like `string_view`, where a bunch of member functions talk about the types `basic_string_view::size_type`, or `basic_string_view::value_type`, or `const_iterator`, etc. For example, string_view::size now has unsafe bindings, but did not before. PiperOrigin-RevId: 474279132
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