Сборка в Android
Создайте два genrule: один для генерации заголовка CXX, другой для генерации исходного файла CXX. Затем они используются как входные данные для cc_library_static.
// Сгенерируйте заголовок C++ с привязками C++
// к экспортируемым функциям Rust в lib.rs.
genrule {
name: "libcxx_test_bridge_header",
tools: ["cxxbridge"],
cmd: "$(location cxxbridge) $(in) --header > $(out)",
srcs: ["lib.rs"],
out: ["lib.rs.h"],
}
// Сгенерируйте код C++, который вызывает Rust.
genrule {
name: "libcxx_test_bridge_code",
tools: ["cxxbridge"],
cmd: "$(location cxxbridge) $(in) > $(out)",
srcs: ["lib.rs"],
out: ["lib.rs.cc"],
}
- Инструмент
cxxbridge— самостоятельная утилита, которая генерирует сторону C++ модуля моста. Она входит в Android и доступна как инструмент Soong. - По соглашению, если ваш исходный файл Rust называется
lib.rs, заголовочный файл будет называтьсяlib.rs.h, а исходный файл —lib.rs.cc. Однако это соглашение не навязывается принудительно.