commit | 992595c4d580ae90ad6e06737a54e7fbcbc1e54b | [log] [tgz] |
---|---|---|
author | Lukasz Anforowicz <lukasza@google.com> | Fri Sep 09 11:49:59 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Sep 09 11:50:36 2022 -0700 |
tree | 659e05e4abbcddfdb4be2a8c27ab55b7fc3b815a | |
parent | 38310f31940424a4f41f5b28c678173693badcb3 [diff] |
Expand test coverage for 1) `cc_std` and 2) `inline` namespace. This CL expands test coverage of bindings for the C++ standard library by adding additional headers to `LIBCXX_HEADERS` in `rs_bindings_from_cc/BUILD` (this partially undoes https://github.com/google/crubit/commit/a8aea817b95644bade5d7dae043ef02ac10dcec8). The list of headers to add has been chosen in a somewhat arbitrary, ad-hoc manner (trying a subset of headers and adding ones that didn't cause any build failures). In the long-term a more structured approach is probably called for. The additional headers cover the `std` namespace which helps highlight the challenges associated with support for `inline` namespaces - this is done by the new `test_limits` test in `test/cc_std` and by the new `test/namespace/inline' directory. PiperOrigin-RevId: 473306202
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