cmake: Toolchain abstraction: Introduce toolchain_cc_warning_dw_[1-3]
The introduced macros are placeholders for the cmake parameter warning level. The intent here is to abstract Zephyr's dependence on toolchains, thus allowing for easier porting to other, perhaps commercial, toolchains and/or usecases. No functional change expected. Signed-off-by: Danny Oerndrup <daor@demant.com>
This commit is contained in:
parent
55e2014d99
commit
8650b150b9
|
@ -240,52 +240,17 @@ endif()
|
|||
# W=2 - warnings that occur quite often but may still be relevant
|
||||
# W=3 - the more obscure warnings, can most likely be ignored
|
||||
# ==========================================================================
|
||||
# @Intent Add cmake -DW toolchain supported warnings, if any
|
||||
if(W MATCHES "1")
|
||||
zephyr_compile_options(
|
||||
-Wextra
|
||||
-Wunused
|
||||
-Wno-unused-parameter
|
||||
-Wmissing-declarations
|
||||
-Wmissing-format-attribute
|
||||
-Wold-style-definition
|
||||
)
|
||||
zephyr_cc_option(
|
||||
-Wmissing-prototypes
|
||||
-Wmissing-include-dirs
|
||||
-Wunused-but-set-variable
|
||||
-Wno-missing-field-initializers
|
||||
)
|
||||
toolchain_cc_warning_dw_1()
|
||||
endif()
|
||||
|
||||
if(W MATCHES "2")
|
||||
zephyr_compile_options(
|
||||
-Waggregate-return
|
||||
-Wcast-align
|
||||
-Wdisabled-optimization
|
||||
-Wnested-externs
|
||||
-Wshadow
|
||||
)
|
||||
zephyr_cc_option(
|
||||
-Wlogical-op
|
||||
-Wmissing-field-initializers
|
||||
)
|
||||
toolchain_cc_warning_dw_2()
|
||||
endif()
|
||||
|
||||
if(W MATCHES "3")
|
||||
zephyr_compile_options(
|
||||
-Wbad-function-cast
|
||||
-Wcast-qual
|
||||
-Wconversion
|
||||
-Wpacked
|
||||
-Wpadded
|
||||
-Wpointer-arith
|
||||
-Wredundant-decls
|
||||
-Wswitch-default
|
||||
)
|
||||
zephyr_cc_option(
|
||||
-Wpacked-bitfield-compat
|
||||
-Wvla
|
||||
)
|
||||
toolchain_cc_warning_dw_3()
|
||||
endif()
|
||||
|
||||
|
||||
|
|
|
@ -79,6 +79,7 @@ include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_optimizations.cmake)
|
|||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_cpp.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_asm.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_baremetal.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_warnings.cmake)
|
||||
|
||||
macro(toolchain_cc_security_fortify)
|
||||
# No op, clang doesn't understand fortify at all
|
||||
|
|
|
@ -139,3 +139,4 @@ include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_optimizations.cmake)
|
|||
include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_cpp.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_asm.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_baremetal.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/${COMPILER}/target_warnings.cmake)
|
||||
|
|
57
cmake/compiler/gcc/target_warnings.cmake
Normal file
57
cmake/compiler/gcc/target_warnings.cmake
Normal file
|
@ -0,0 +1,57 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# See root CMakeLists.txt for description and expectations of these macros
|
||||
|
||||
macro(toolchain_cc_warning_dw_1)
|
||||
|
||||
zephyr_compile_options(
|
||||
-Wextra
|
||||
-Wunused
|
||||
-Wno-unused-parameter
|
||||
-Wmissing-declarations
|
||||
-Wmissing-format-attribute
|
||||
-Wold-style-definition
|
||||
)
|
||||
zephyr_cc_option(
|
||||
-Wmissing-prototypes
|
||||
-Wmissing-include-dirs
|
||||
-Wunused-but-set-variable
|
||||
-Wno-missing-field-initializers
|
||||
)
|
||||
|
||||
endmacro()
|
||||
|
||||
macro(toolchain_cc_warning_dw_2)
|
||||
|
||||
zephyr_compile_options(
|
||||
-Waggregate-return
|
||||
-Wcast-align
|
||||
-Wdisabled-optimization
|
||||
-Wnested-externs
|
||||
-Wshadow
|
||||
)
|
||||
zephyr_cc_option(
|
||||
-Wlogical-op
|
||||
-Wmissing-field-initializers
|
||||
)
|
||||
|
||||
endmacro()
|
||||
|
||||
macro(toolchain_cc_warning_dw_3)
|
||||
|
||||
zephyr_compile_options(
|
||||
-Wbad-function-cast
|
||||
-Wcast-qual
|
||||
-Wconversion
|
||||
-Wpacked
|
||||
-Wpadded
|
||||
-Wpointer-arith
|
||||
-Wredundant-decls
|
||||
-Wswitch-default
|
||||
)
|
||||
zephyr_cc_option(
|
||||
-Wpacked-bitfield-compat
|
||||
-Wvla
|
||||
)
|
||||
|
||||
endmacro()
|
|
@ -88,3 +88,4 @@ include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_optimizations.cmake)
|
|||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_cpp.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_asm.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_baremetal.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_warnings.cmake)
|
||||
|
|
|
@ -82,3 +82,4 @@ include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_optimizations.cmake)
|
|||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_cpp.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_asm.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_baremetal.cmake)
|
||||
include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_warnings.cmake)
|
||||
|
|
Loading…
Reference in a new issue