apache / apache/nuttx

Toolchain command do not take effect in CMake build after menuconfig settings

Open
#11,452 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
4k
Forks
1.7k
Avg merge
1d 17h
Merged PRs (30d)
237

Description

Here is an example:

Our current Toolchain File overwrite the ARCHIVE command
https://github.com/apache/nuttx/blob/992719730f355ed3132c3204153f919822870074/arch/arm/src/cmake/Toolchain.cmake#L92-L94
but `` makes different choices depending on whether `LTO` is enabled or not.
https://github.com/apache/nuttx/blob/992719730f355ed3132c3204153f919822870074/arch/arm/src/cmake/Toolchain.cmake#L75-L86
If every Toolchain configs is configured in defconfig, everything will work normally.
But if `LTO` is **not** enabled in defconfig and I call `cmake --build -t menuconfig` to open `LTO`, then the expectation is **different** from the setting.

Because the execution of CMake is divided into three stages: **_configure_**, **_generate_** and **_build_**.
the Toolchain command (such as CMAKE_AR above) is configured in stages **_configure_**, **_generate_** and is solidified in the generated build file (such as Makefile).
so in the end this menuconfig modification will NOT take effect.

How can we improve this to make it work properly?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.