2015-06-18 5 views
1

Я пишу многоязычный проект (библиотека Java, которая загружает и вызывает функции Rust через FFI), и поэтому я хочу немного разбить мои файлы кода. Вместо того, чтобы просто положить все в src, я сделал папки src/rust и src/java. Как я могу сообщить Cargo, что мой файл lib.rs (и все мои исходные файлы) находится в src/rust, а не src? Кроме того, как я могу сказать, что он выводится на out/rust, а не target?Укажите нестандартную исходную папку

ответ

3

Чтобы вручную установить путь к вашему lib.rs вы можете создать [lib] раздел в вашем Cargo.toml и установите path в src/rust/lib.rs. Соответствующую документацию можно найти здесь: http://doc.crates.io/manifest.html#configuring-a-target

Для вывода вы можете установить переменную окружения CARGO_TARGET_DIR на out. Соответствующая документация может быть найдена здесь: http://doc.crates.io/config.html#environment-variables

Или вы можете создать .cargo/config файл (также toml -файла, но не расширение файла) и добавить [build] раздел с ключом target-dir набора для out. Соответствующую документацию можно найти здесь: http://doc.crates.io/config.html#configuration-keys

+0

Есть ли эквивалент 'CARGO_TARGET_DIR', за исключением каталога src? я не хочу явно указывать путь ко всем файлам. –

+0

вам нужно указать только 'lib.rs', все подмодули не нужно указывать. Если вы имеете в виду '[bin]', '[test]' и '[bench]' target, то да, вам нужно указать один для каждого из них. –

Смежные вопросы