Compilando no Android

Crie duas regras de geração: uma para gerar o cabeçalho CXX e outra para gerar o arquivo de origem CXX. Estes são então usados como entradas para a cc_library_static.

// Gera um cabeçalho C++ contendo as vinculações C++ // para as funções exportadas do Rust em lib.rs. genrule { name: "libcxx_test_bridge_header", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) --header > $(out)", srcs: ["lib.rs"], out: ["lib.rs.h"], } // Gera o código C++ que o Rust chama. genrule { name: "libcxx_test_bridge_code", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) > $(out)", srcs: ["lib.rs"], out: ["lib.rs.cc"], }

Speaker Notes

  • A ferramenta cxxbridge é uma ferramenta independente que gera o lado C++ do módulo bridge. Ele está incluído no Android e está disponível como uma ferramenta Soong.
  • Por convenção, se o seu arquivo de origem Rust for lib.rs, seu arquivo de cabeçalho será chamado lib.rs.h e seu arquivo de origem será chamado lib.rs.cc. Essa convenção de nomenclatura não é aplicada, no entanto.