Збірка в Android
Створіть два правила генерування: Одне для створення заголовка 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
. Втім, цей порядок іменування не є обов'язковим.