Build: Added option to treat warnings as errors
Useful for CI.
Change-Id: I68b5acc949de69f1f7fb502bdc8efbbb659c3155
Signed-off-by: Bohdan Hunko <Bohdan.Hunko@infineon.com>
diff --git a/config/config_base.cmake b/config/config_base.cmake
index 591dd6b..05a21f9 100644
--- a/config/config_base.cmake
+++ b/config/config_base.cmake
@@ -53,6 +53,8 @@
set(CODE_SHARING_OUTPUT_FILE_SUFFIX "_shared_symbols.axf" CACHE STRING "Suffix to use for code-sharing output files")
set(CODE_SHARING_INPUT_FILE_SUFFIX "_shared_symbols.axf" CACHE STRING "Suffix to use for code-sharing input files")
+set(CONFIG_TFM_WARNINGS_ARE_ERRORS OFF CACHE BOOL "Whether to treat warnings as errors")
+
####################################################################################################
# These configurations below are also referred by Kconfig configuration system,
# together with TF-M Header File Config System options.
diff --git a/platform/ns/toolchain_ns_ARMCLANG.cmake b/platform/ns/toolchain_ns_ARMCLANG.cmake
index c879da2..d20a671 100644
--- a/platform/ns/toolchain_ns_ARMCLANG.cmake
+++ b/platform/ns/toolchain_ns_ARMCLANG.cmake
@@ -185,6 +185,7 @@
$<$<COMPILE_LANGUAGE:ASM>:-masm=armasm>
$<$<AND:$<COMPILE_LANGUAGE:C>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
+ $<$<AND:$<COMPILE_LANGUAGE:C,CXX>,$<BOOL:${CONFIG_TFM_WARNINGS_ARE_ERRORS}>>:-Werror>
)
diff --git a/platform/ns/toolchain_ns_GNUARM.cmake b/platform/ns/toolchain_ns_GNUARM.cmake
index 808f5c3..96e0d35 100644
--- a/platform/ns/toolchain_ns_GNUARM.cmake
+++ b/platform/ns/toolchain_ns_GNUARM.cmake
@@ -192,6 +192,7 @@
$<$<COMPILE_LANGUAGE:CXX>:-std=c++11>
$<$<AND:$<COMPILE_LANGUAGE:C>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
+ $<$<AND:$<COMPILE_LANGUAGE:C,CXX>,$<BOOL:${CONFIG_TFM_WARNINGS_ARE_ERRORS}>>:-Werror>
)
add_link_options(
diff --git a/platform/ns/toolchain_ns_IARARM.cmake b/platform/ns/toolchain_ns_IARARM.cmake
index 5252cd9..5ef0294 100644
--- a/platform/ns/toolchain_ns_IARARM.cmake
+++ b/platform/ns/toolchain_ns_IARARM.cmake
@@ -108,6 +108,7 @@
$<$<COMPILE_LANGUAGE:C,CXX>:--diag_suppress=Pe546,Pe940,Pa082,Pa084>
$<$<COMPILE_LANGUAGE:C,CXX>:--no_path_in_file_macros>
$<$<AND:$<COMPILE_LANGUAGE:C,CXX,ASM>,$<BOOL:${TFM_DEBUG_SYMBOLS}>,$<CONFIG:Release,MinSizeRel>>:-r>
+ $<$<AND:$<COMPILE_LANGUAGE:C,CXX>,$<BOOL:${CONFIG_TFM_WARNINGS_ARE_ERRORS}>>:--warnings_are_errors>
)
add_link_options(
diff --git a/toolchain_ARMCLANG.cmake b/toolchain_ARMCLANG.cmake
index 581bcfd..7791982 100644
--- a/toolchain_ARMCLANG.cmake
+++ b/toolchain_ARMCLANG.cmake
@@ -115,6 +115,7 @@
$<$<COMPILE_LANGUAGE:ASM>:-masm=armasm>
$<$<AND:$<COMPILE_LANGUAGE:C>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<BOOL:${TFM_DEBUG_SYMBOLS}>>:-g>
+ $<$<AND:$<COMPILE_LANGUAGE:C,CXX>,$<BOOL:${CONFIG_TFM_WARNINGS_ARE_ERRORS}>>:-Werror>
)
add_link_options(
diff --git a/toolchain_GNUARM.cmake b/toolchain_GNUARM.cmake
index 074fac4..9d3ae09 100644
--- a/toolchain_GNUARM.cmake
+++ b/toolchain_GNUARM.cmake
@@ -123,6 +123,7 @@
$<$<COMPILE_LANGUAGE:C>:-std=c99>
$<$<COMPILE_LANGUAGE:CXX>:-std=c++11>
$<$<OR:$<BOOL:${TFM_DEBUG_SYMBOLS}>,$<BOOL:${TFM_CODE_COVERAGE}>>:-g>
+ $<$<AND:$<COMPILE_LANGUAGE:C,CXX>,$<BOOL:${CONFIG_TFM_WARNINGS_ARE_ERRORS}>>:-Werror>
)
#
diff --git a/toolchain_IARARM.cmake b/toolchain_IARARM.cmake
index 83156fe..bf0f35f 100644
--- a/toolchain_IARARM.cmake
+++ b/toolchain_IARARM.cmake
@@ -61,6 +61,7 @@
$<$<COMPILE_LANGUAGE:C,CXX>:--diag_suppress=Pe546,Pe940,Pa082,Pa084>
$<$<COMPILE_LANGUAGE:C,CXX>:--no_path_in_file_macros>
$<$<AND:$<COMPILE_LANGUAGE:C,CXX,ASM>,$<BOOL:${TFM_DEBUG_SYMBOLS}>,$<CONFIG:Release,MinSizeRel>>:-r>
+ $<$<AND:$<COMPILE_LANGUAGE:C,CXX>,$<BOOL:${CONFIG_TFM_WARNINGS_ARE_ERRORS}>>:--warnings_are_errors>
)
add_link_options(