Arm 在介子中,有没有办法覆盖交叉构建定义文件中的内置选项?

Arm 在介子中,有没有办法覆盖交叉构建定义文件中的内置选项?,arm,meson-build,Arm,Meson Build,我目前正在评估嵌入式项目的不同构建系统(例如:基于FreeRTOS的),我遇到了meson。我觉得这很好,主要是有一个交叉构建定义文件来定义我的项目需要如何编译 然而,我确实对一些基本选项有异议,例如: b_pch b_静力学 也就是说,默认设置为true。在我的项目中,这些选项生成了一个错误的二进制文件 按照介子的建议,目前的解决方案是: meson debug --cross-file boards/SensGate/meson_config_stm32l4_gcc8.ini -Db_p

我目前正在评估嵌入式项目的不同构建系统(例如:基于FreeRTOS的),我遇到了meson。我觉得这很好,主要是有一个交叉构建定义文件来定义我的项目需要如何编译

然而,我确实对一些基本选项有异议,例如:

  • b_pch
  • b_静力学
也就是说,默认设置为
true
。在我的项目中,这些选项生成了一个错误的二进制文件

按照介子的建议,目前的解决方案是:

meson debug --cross-file boards/SensGate/meson_config_stm32l4_gcc8.ini -Db_pch=false -Db_staticpic=false
cd debug && ninja hex
但是我觉得在交叉构建定义文件之外定义编译和链接器选项并不好看

我想知道是否有办法覆盖文件本身中的这些选项…

如果没有,您认为我应该在介子项目中创建一个票证来请求此功能吗

我希望有这样的情况:

[binaries]
c = 'arm-none-eabi-gcc'

[buildin_option] # New section?
b_pch = false
b_staticpic = false

[properties]
objcopy = 'arm-none-eabi-objcopy'
objcopy_args = [
    ...]
c_args = [
    ...]
c_link_args = [
    ...]

[host_machine]
...


感谢@Matt在这里的支持

我的交叉生成定义文件如下所示:

[binaries]
...

[properties]
...
project_configuration = [
    'b_pch=false',
    'b_staticpic=false']
...

[host_machine]
...
在我的root
meson.build
中,我有:

# Define the project
project('Project', 'c', default_options: meson.get_cross_property('project_configuration'))
...
这样,我只需要作为命令调用:

meson debug --cross-file boards/SensGate/meson_config_stm32l4_gcc8.ini
cd debug && ninja hex

为什么不覆盖project()函数中的默认值?@matt,你有比以下更好的链接吗?类似于
项目('name','c',默认选项:['b_pch=false','b_staticpic=false'])
?如果有疑问,请阅读参考手册:您好@Matt,有了您的评论,我可以得到我想要的,谢谢!我会在5-10分钟内公布我的答案