Сборочный скрипт может получить произвольные метаданные зависимости
31.12.2025Сборочный скрипт крейта может получать произвольные метаданные зависимостей, объявленные в манифесте. Раньше набор предопределённых полей был ограничен.
Как это работало раньше
Крейт мог объявить в манифесте специальное поле, и его значение становилось доступным сборочному скрипту. Механизм был один, и поля жёстко заданы стандартной библиотекой: путь к библиотеке, флаги сборки, версия.
Для своего поля скрипт обязан был вводить соглашение об именовании и разбирать значение вручную. Если двух производителей одного поля не было, механизм всё равно приходилось придумывать.
Что добавлено
Инструкция с произвольным именем и значением в манифесте. Скрипт объявляет, что интересуется, и получает значение в своём окружении под именем, составленным из названия зависимости и имени поля.
То есть имя поля больше не ограничено списком — можно завести своё и передавать через него что угодно: версию системы сборки, путь к инструменту, идентификатор целевой платформы.
Положение дел
Пока за флагом нестабильной возможности.
Оригинал
Adds an unstable -Zany-build-script-metadata feature. Adds CARGO_DEP_<name>_<key> env vars as described in rust-lang/cargo#3544 when -Zany-build-script-metadata is passed.
Упоминаний: 1 · Просмотров: 2