Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 February 10

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
разные параметры которые указывают на то какие элементы должны рендерится, разные дефолтные настройки разнгых систем, настройки разрешения, настройки окна и прочее прочее
источник

IB

Ilya Bogdanov in RU Rust GameDev — русскоговорящее сообщество
То есть ты хочешь зашивать настройки в бинарник намертво, чтобы у пользователя не было возможности их заменить?
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
я изначально  хочу иметь процесс покторый позволить мне в отдельных файлах конфигурить разные сборки и дальше билдить используя параметры из этих файлов
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Ilya Bogdanov
То есть ты хочешь зашивать настройки в бинарник намертво, чтобы у пользователя не было возможности их заменить?
на данном этапе мне это не критично
источник

q

qb60 in RU Rust GameDev — русскоговорящее сообщество
SET001
во, а теперь самый главный вопрос - можно ли использовать не те глобальные переменные среды а те которые описаны в каком то отдельном файле?
В build.rs можно сделать
источник

IB

Ilya Bogdanov in RU Rust GameDev — русскоговорящее сообщество
Еще один вариант - на модули можно навешивать #[path = "other_utils/other_thing.rs"] - можешь хранить константы в rs файлах и через cfg_attr подключать нужные (управлять фичами)
источник

IB

Ilya Bogdanov in RU Rust GameDev — русскоговорящее сообщество
build.rs норм вариант
источник

IB

Ilya Bogdanov in RU Rust GameDev — русскоговорящее сообщество
Можешь сформировать любой нужный тебе файл
источник

q

qb60 in RU Rust GameDev — русскоговорящее сообщество
SET001
я хочу иметь несколько конфигурационных файлов и как-то задать этот файл при компиляции чтоб получаить разные сборки
Например:

build.rs:
fn main() {
   println!("cargo:rustc-cfg=foo=\"bar1\"");
}

main.rs:
fn main() {
   let foo = if cfg!(foo = "bar1") {
       10
   } else if cfg!(foo = "bar2") {
       20
   } else {
       30
   };

   println!("foo = {}", foo);
}
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
о, спасибо, сейчас почитаю об этих методах
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
qb60
Например:

build.rs:
fn main() {
   println!("cargo:rustc-cfg=foo=\"bar1\"");
}

main.rs:
fn main() {
   let foo = if cfg!(foo = "bar1") {
       10
   } else if cfg!(foo = "bar2") {
       20
   } else {
       30
   };

   println!("foo = {}", foo);
}
Ну это слишком задротство кмк. cfg_if должно с головой хватить.
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Ну это слишком задротство кмк. cfg_if должно с головой хватить.
я как не кручу у меня это не работает в общем и целом
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
к тому же мне нужен способ задавать конфиги а не фичи
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
аок
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Ilya Bogdanov
Еще один вариант - на модули можно навешивать #[path = "other_utils/other_thing.rs"] - можешь хранить константы в rs файлах и через cfg_attr подключать нужные (управлять фичами)
а где об этом почитатья я что-то не нахожу
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
SET001
очень нормальная практика, почему странное
#[cfg(feature = "some_feature")]

https://github.com/metta-systems/vesper/blob/boot-alloc-regions/vesper/src/main.rs#L42-L50

прекрасно всё работает, не надо натягивать ежа на ужа
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
SET001
очень нормальная практика, почему странное
features описываются в Cargo.toml
https://github.com/metta-systems/vesper/blob/boot-alloc-regions/vesper/Cargo.toml#L23-L29

и включаются-выключаются например в Makefile.toml в зависимости от потребностей сборки
https://github.com/metta-systems/vesper/blob/boot-alloc-regions/vesper/Makefile.toml#L18
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
это не конфиг а какой-то костыль
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
unstable = []
realtime = []
noserial = []
источник