172 похожих чатов

Доброго дня/утра/ночи! Есть ли какой-нибудь проверенный мануал/рецепт по встравиванию версионирования в

генеримые бинари с помощью build.rs или еще каких ухищрений?

Чтобы под linux генерить SOшки c именем, содержащим версию (libfoо.so.0.0.1), и с проставленным SONAME (флаги для SONAME раскопал, но достать имя бинаря, кроме как распарсив Cargo.toml, не нашел. И возможности поменять конеченое имя артефакта в билдскрипте тоже не наблюдаю).

А под windows вкомпиливать содержимое version.rc (https://pisoft.ru/verstak/insider/cw_ver1.htm), чтобы виндовые инспекторы приложений радовались.

А то забава с "а давайте очень маленькую и простую либину сделаем на Rust" вышла из под контроля...

6 ответов

14 просмотров

build.rs не является полной заменой системы сборки. Что вы используете для компиляции под разные платформы? Вот там добавить дополнительные шаги.

Ещё, вроде как, cargo устанавливает переменные окружения с именем, версией и прочим. Так что парсить toml не нужно

Dmitry-Sviridkin Автор вопроса
mental stability🥺✨
Ещё, вроде как, cargo устанавливает переменные окр...

Установлены имя пакета и версия его. А вот имя конкретного собираемого бинаря (lib.name) — не видать на этапе build.rs

Dmitry-Sviridkin Автор вопроса
red75prime
build.rs не является полной заменой системы сборки...

Пока build.rs как точки входа в сборочную систему хватало. Понятное дело, что все эти переименования можно навернуть отдельно и потом. И скорее всего только так и придется. Основная проблема, которую не понятно как решать: как вкомпиливать эти виндовые символы, чтобы они остались, а не были выпилены за ненадобностью. В сишных и плюсовых версиях объектник средствами cmake цеплялся. Как то же самое сделать для библиотек, собранных rustc?

Dmitry Sviridkin
Пока build.rs как точки входа в сборочную систему ...

Вкомпиливанием дополнительных библиотек занимается линкер. Виндовыми сборками давно не занимался, но вроде бы должно быть достаточно вывести cargo:rustc-link-lib=rc.res в build.rs

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
И из-за этого сужается карман. Нет свободного полёта. Они либо могут какой-то заточенный прикладной софт, либо какой-то простой системный написать. По шаблону. А, допустим, по...
КТ315
9
Всем привет! Подскажите, как решить проблему или из-за чего это происходит. У меня есть проблема в WebStorm (v.2024.1.3): я ставлю любую тему, и через какое-то время меняется ...
Alexander Sheigov
12
всем вопрос. есть функция, которая иногда в линуксе валится с исключением EConvertError Invalid argument to date encode на строке Result:=LocalToUtcDateTime(FileDateToDateTime...
Handatros
6
А с каким компилятором не будет ошибкой использовать асм вставки?
Replicant ~
14
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Народ, кто шарит в расширенных разделах (EBR/EPR) на дисках с разметками MBR? Везде пишут (в вики рус/англ) в частности + другие источники смотрел, что первый сектор расширенн...
Eugene Krasnikov (ᴊɪɴ x)
1
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Карта сайта