【问题标题】:How do I set basic options with meson?如何使用介子设置基本选项?
【发布时间】:2020-08-23 16:21:49
【问题描述】:

我正在尝试使用介子配置一个项目。具体来说,我正在尝试设置一些选项。

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 trueb_lto=trueb_lto true。以及所有没有true 值的人。没有运气。

那么我该如何设置这些“基本选项”呢?

【问题讨论】:

  • @blubase:您能发布一个指向该问题的链接吗?另外,请回答?
  • 介子团队告诉我,实际上--option=value--option value 风格的参数传递只适用于universal options 中的信息,而不适用于其他对象组,手册是在这方面不明确。我会(再次)更改我的答案以反映他的信息。

标签: command-line command-line-arguments meson-build buildconfiguration


【解决方案1】:

传递参数的--option=value--option value 样式仅适用于meson's manual 中的通用选项 部分...所以不适用于基本选项,和别的。而是使用-Doption=value 语法来设置选项。这是建议的方式,因为meson setup --help 声明[-D option] 用于设置各种选项。请参阅介子团队的answer。所以,在你的情况下运行:

meson build . -Db_lto=true

但是,最好使用这种顺序,因为它在手册中指定了这种方式 (man meson)。

meson -Db_lto=true build . 

meson configure build -Db_lto=true

如果自上次配置后构建目录发生更改,请改用reconfigure

meson reconfigure build -Db_lto=true

或明确:

meson setup --reconfigure -Db_lto=true build

【讨论】:

  • 为什么是reconfigure 而不是configure
  • reconfigure 用于更改已经存在的构建目录。 meson configure 仅显示当前设置,据我所知。
  • 好的,我重新阅读了手册的那一部分。实际上,在很多情况下configurereconfigure 都是这样做的。仅当自上次配置以来引入了新选项时,meson configure build -D option=value 可能不允许设置此新选项 reconfigure,而明确地 meson setup --reconfigure 允许。
猜你喜欢
  • 1970-01-01
  • 2017-10-03
  • 2019-12-19
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-21
相关资源
最近更新 更多