Чтобы расширить ответ от @PeterHall, можно использовать секцию Cargo "features" для передачи информации в скрипт сборки.
Вставьте следующие строки в Cargo.toml
:
[features]
headers = []
Затем проверьте переменную среды CARGO_FEATURE_HEADERS
в build.rs
:
use std::env;
fn write_headers() {
// call cbindgen ...
}
fn main() {
let headers_enabled = env::var_os("CARGO_FEATURE_HEADERS").is_some();
if headers_enabled {
write_headers();
}
}
Чтобы запустить сборку выпуска cargo build --features=headers --release
.
Теперь это решение по-прежнемукомпилирует скрипт сборки и все зависимости cbindgen, когда RLS обновляет свой статус или когда cargo test
запускается вручную.Но ошибки времени выполнения cbindgen больше не мешают RLS.