Как мне установить базовые параметры с помощью meson?

Я пытаюсь настроить проект с помощью meson. Конкретно пытаюсь настроить некоторые параметры.

meson config говорит мне, среди прочего:

Core options:
  Option          Current Value Possible Values                                          Description                                             
  ------          ------------- ---------------                                          -----------                                             
  buildtype       debug         [plain, debug, debugoptimized, release, minsize, custom] Build type to use                                       

Base options:
  Option      Current Value Possible Values                                               Description                                   
  ------      ------------- ---------------                                               -----------                                   
  b_lto       false         [true, false]                                                 Use link time optimization                    

(другие варианты, конечно же, были вырезаны из этой распечатки.)

Итак, пишу:

meson build . --buildtype=release

в моем каталоге сборки, и все идет нормально - никаких предупреждений или ошибок (я дважды проверил, изменилось ли значение параметра). Затем я пишу:

meson build . --b_lto=true

но это меня понимает:

meson: error: unrecognized arguments: --b_lto=true

Я также пробовал -b_lto=true, --b_lto true, b_lto=true и b_lto true. И все они без значения true. Не повезло.

Как мне тогда установить эти базовые параметры?


person einpoklum    schedule 23.08.2020    source источник
comment
@blubase: Не могли бы вы разместить ссылку на этот выпуск? Кроме того, сделать это ответом?   -  person einpoklum    schedule 24.08.2020
comment
Команда meson проинформировала меня, что на самом деле передача аргументов в стиле --option=value и --option value применяется только к информации в universal options, но не к другой группе объектов, руководство не было явным в этом отношении. Я изменю свой ответ (снова), чтобы отразить его информацию.   -  person blubase    schedule 24.08.2020


Ответы (1)


Стили --option=value и --option value для передачи аргументов применяются только к разделу универсальные параметры в meson's manual ... так что не к базовым параметрам и прочим. Вместо этого используйте синтаксис -Doption=value для установки параметров. Это рекомендуемый способ, поскольку meson setup --help заявляет, что [-D option] будет использоваться для установки всевозможных опций. См. Этот ответ группы мезонов. Итак, в вашем случае запустите:

meson build . -Db_lto=true

но лучше использовать этот порядок, поскольку он указан таким образом в руководстве (man meson).

meson -Db_lto=true build . 

or

meson configure build -Db_lto=true

Если каталог сборки изменился с момента последней настройки, используйте вместо этого reconfigure.

meson reconfigure build -Db_lto=true

или явно:

meson setup --reconfigure -Db_lto=true build
person blubase    schedule 24.08.2020
comment
Почему reconfigure, а не configure? - person einpoklum; 24.08.2020
comment
reconfigure используется для изменения уже существующего каталога сборки. meson configure, насколько я понимаю, просто показывает текущую настройку. - person blubase; 24.08.2020
comment
Хорошо, я перечитал эту часть руководства. Собственно, во многих случаях configure и reconfigure делают то же самое. Только если с момента последней настройки были введены новые параметры, просто meson configure build -D option=value может не разрешить установить этот новый параметр, reconfigure и явно meson setup --reconfigure сделать. - person blubase; 24.08.2020