Збірка в 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"], }

Speaker Notes

  • Інструмент cxxbridge - це окремий інструмент, який генерує C++ частину модуля моста. Він входить до складу Android і доступний як інструмент Soong.
  • За домовленістю, якщо ваш вихідний файл Rust має ім’я lib.rs, ваш заголовний файл буде називатися lib.rs.h, а вихідний файл буде називатися lib.rs.cc. Втім, цей порядок іменування не є обов’язковим.