Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Сборка в 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. Однако это соглашение не навязывается принудительно.