7247412a9e
Cleanup board and shield cmake code so that code duplication is reduced. Before this commit, the code for verifying if BOARD or SHIELD user input had changed was almost identical. The common code has been made into a Zephyr extension function so that all part of Zephyr build system can have a uniform way of checking if sticky arguments has changed, and print user warning in a uniform way. This also fixes an undiscovered flaw, where changing a shield is not possible if a shield was defined at first CMake invocation, but in case no shield had been specified at all, then build system would wrongly allow specifying and changing shields, for example doing: cmake -DBOARD=nrf52840dk_nrf52840 -DSHIELD=sparkfun_sara_r4 <sample> cmake -DSHIELD=wnc_m14a2a results correctly in: > CMake Warning at zephyr/cmake/app/boilerplate.cmake:287 (message): > The build directory must be cleaned pristinely when changing shields and correctly keep existing SHIELD settings. but doing: cmake -DBOARD=nrf52840dk_nrf52840 <sample> cmake -DSHIELD=sparkfun_sara_r4 cmake -DSHIELD=wnc_m14a2a would not result in any warning, because `CACHED_SHIELD` was not correctly checked in this case. Changing shield is not a supported feature as it have unknown behavior. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no> |
||
---|---|---|
.. | ||
boilerplate.cmake |