zephyr/cmake/modules
Marc Herbert 4cba9e6d42 cmake: warn the user that the toolchain cache hides errors
When `toolchain_is_ok` fails, the error message points the user at the
CMake logs. But those logs will be empty if the user tried to compile
more than once (typically: cleans everything and tries again). So tell
the user that cleaning the toolchain cache is required to see the error.

Tell the user to "move" the cache instead of removing it in case
technical support needs the cache for forensics.

Some finicky toolchains can be "non-deterministic" and fail
_sometimes_. For instance a license server can be flaky, or the
toolchain can require an "elaborate" set of environment variables
triggering some configuration "trial-and-error". In such a
non-deterministic case deleting the cache is enough to get rid of the
issue and move on! Looking at logs is not even required; even
better. Once the toolchain cache believes that the toolchain works, any
future toolchain glitch will be obvious at actual compilation time.

To test all this:
```
 # Verify that the toolchain can compile a dummy file, if it is not we
 # won't be able to test for compatibility with certain C flags.
-zephyr_check_compiler_flag(C "" toolchain_is_ok)
+zephyr_check_compiler_flag(C "-fubar" toolchain_is_ok)
 assert(toolchain_is_ok "The toolchain is unable to build a dummy C file.\
```

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-09-22 13:42:21 +02:00
..
arch.cmake cmake: kconfig: introduce dedicated unit testing board 2022-08-18 14:29:14 +02:00
basic_settings.cmake cmake: extend zephyr_get() to handle build configurations from sysbuild 2022-09-02 15:16:50 +02:00
boards.cmake cmake: modules: add support for board extensions 2023-08-21 16:28:22 +02:00
ccache.cmake cmake: Zephyr CMake package and CMake modules 2022-02-22 10:02:39 -08:00
configuration_files.cmake cmake: modules: configuration_files: Force set app config dir 2023-09-01 17:44:59 +02:00
doc.cmake cmake: doc: created a doc.cmake CMake module in Zephyr CMake modules dir 2022-02-22 10:02:39 -08:00
dts.cmake cmake: modules: add support for board extensions 2023-08-21 16:28:22 +02:00
extensions.cmake cmake: extensions: Add zephyr_topological_sort() 2023-09-05 15:27:04 +02:00
Findarmclang.cmake cmake: armclang version detection 2023-09-13 16:23:30 +02:00
FindBabbleSim.cmake nrf52_bsim: Find simulator thru west as fallback 2023-04-28 13:57:21 +02:00
FindDeprecated.cmake cmake: python module cleanup. 2023-08-21 13:21:52 +02:00
FindDtc.cmake cmake: cleanup search for devicetree compiler, dtc 2022-09-01 15:59:43 +02:00
FindGnuLd.cmake cmake: modules/FindGnuLd: cache variable GNULD_VERSION_STRING 2023-09-01 09:02:38 -04:00
FindHostTools.cmake cmake: modules: host tools: Bump minimum version to 0.16 2023-09-12 13:47:23 +02:00
FindLlvmLld.cmake cmake: Fix FindLlvmLld usage of unimported package 2023-06-26 12:40:03 +00:00
FindoneApi.cmake cmake: Fix FindLlvmLld usage of unimported package 2023-06-26 12:40:03 +00:00
FindScaTools.cmake cmake: implement build infrastructure for supporting SCA tools. 2023-01-27 20:28:58 +09:00
FindTargetTools.cmake cmake: propagate endianess to CMake CMAKE_<lang>_BYTE_ORDER setting 2022-09-26 15:09:38 +00:00
FindZephyr-sdk.cmake ARC: MWDT: rework GNU helper tools usage 2023-06-17 07:44:31 -04:00
generated_file_directories.cmake cmake: modules: add generated_file_directories 2023-04-12 13:04:31 +02:00
kconfig.cmake cmake: expose TOOLCHAIN_HAS_PICOLIBC to kconfig 2023-09-13 17:36:46 -04:00
kernel.cmake cmake: warn the user that the toolchain cache hides errors 2023-09-22 13:42:21 +02:00
pre_dt.cmake cmake: modules: dts: extract preprocessing helper extension 2023-04-12 13:04:31 +02:00
python.cmake cmake: python module cleanup. 2023-08-21 13:21:52 +02:00
root.cmake cmake: boards: Fix issue with relative paths 2023-06-15 05:10:42 -04:00
shields.cmake cmake: fix and clean up some module doc comments 2023-01-11 09:40:14 +01:00
snippets.cmake cmake: support snippets scope for zephyr_get() 2023-05-25 13:31:53 +00:00
soc.cmake cmake: Zephyr CMake package and CMake modules 2022-02-22 10:02:39 -08:00
unittest.cmake unittest: add support for coverage 2022-11-28 16:26:02 -05:00
user_cache.cmake cmake: Fix USER_CACHE_DIR path generation 2023-05-10 15:27:54 +02:00
version.cmake cmake: version: Fix example comment 2023-09-01 17:44:28 +02:00
west.cmake cmake: cleanup old west version support 2023-08-24 10:47:00 +02:00
zephyr_default.cmake cmake: add ZephyrAppConfiguration package 2023-08-17 10:36:45 +02:00
zephyr_module.cmake cmake: align Zephyr module variable to EXTRA_ZEPHYR_MODULES 2023-05-23 16:40:21 +02:00