Add --public_headers flag

Before, the tool assumed there will be just one header to generate bindings
from. In this CL we add a flag for specifying multiple headers.

Behind the scenes we create a virtual filesystem and in it we create a header
file that includes all headers from --public_headers. We pass this single file
to the Clang tool.

To achieve this we have to use a different ClangTool API than before. The major
side effect of this change is that we no longer have to pass
--use_tool_args_for_compile flag to disable Blaze integration, because there is
no Blaze integration support in this new API :)

PiperOrigin-RevId: 390600337
6 files changed
tree: f9f79f67eb23c6d9118ef060f8475b4eb2417ee6
  1. rs_bindings_from_cc/
  2. CODE_OF_CONDUCT
  3. CONTRIBUTING
  4. LICENSE
  5. README.md
README.md

Crubit: C++/Rust Bidirectional Interop Tool

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.