如何在 Alire .toml 文件中添加额外的编译器选项?

问题描述 投票:0回答:1

对于交叉编译,我需要指定 MCU 类型作为 Ada、C 和理论上的 C++ 编译器的选项。

我怎样才能做到这一点,并且在构建依赖项时也应用它?

https://alire.ada.dev/docs/catalog-format-spec.html#build-profiles-and-switches我看到了如何替换例如每个构建配置文件的优化选项。

但是,这不是添加,而是替换,除此之外,似乎只适用于 Ada 编译器。

在向我的

alire.toml
文件添加任何内容之前,
.gpr
目录中生成的
config
文件包含:

   Ada_Compiler_Switches := Ada_Compiler_Switches &
          (
            "-Og" -- Optimize for debug
           ,"-ffunction-sections" -- Separate ELF section for each function
           ,"-fdata-sections" -- Separate ELF section for each variable
           ,"-g" -- Generate debug info
           ,"-gnatwa" -- Enable all warnings

对于

alire.toml
,然后我添加:

[build-switches]
release.optimization = ["-mmcu=avr32dd20"]
development.optimization = ["-mmcu=avr32dd20"]
validation.optimization = ["-mmcu=avr32dd20"]

并在

.gpr
目录下的
config
文件中获取以下内容:

   Ada_Compiler_Switches := Ada_Compiler_Switches &
          (
            "-mmcu=avr32dd20"
           ,"-g" -- Generate debug info
           ,"-gnatwa" -- Enable all warnings

因此信息被替换而不是添加(正如根据解释所预期的那样),不幸的是仅适用于 Ada 而不是其他语言。

我该如何解决这个问题?

ada gprbuild alire
1个回答
0
投票

当时(v2.0),您只能更换开关。要附加,您需要按照 @simon-wright 指示的方式进行操作,即使用顶级 .gpr 文件来扩展配置文件中定义的开关。顶级 .gpr 在创建后不会被 Alire 编辑。

© www.soinside.com 2019 - 2024. All rights reserved.