cmake: enable -Wshadow partially for in-tree code
This enables -Wshadow to warn about shadow variables on in tree code under arch/, boards/, drivers/, kernel/, lib/, soc/, and subsys/. Note that this does not enable it globally because out-of-tree modules will probably take some time to fix (or not at all depending on the project), and it would be great to avoid introduction of any new shadow variables in the meantime. Also note that this tries to be done in a minimally invasive way so it is easy to revert when we enable -Wshadow globally. Source files under modules/, samples/ and tests/ are currently excluded because there does not seem to be a trivial way to add -Wshadow there without going through all CMakeLists.txt to add the option (as there are 1000+ files to change). Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
parent
1f7e0de004
commit
e38fc6de8a
15 changed files with 65 additions and 7 deletions
16
soc/CMakeLists.txt
Normal file
16
soc/CMakeLists.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# FIXME: SHADOW_VARS: Remove this once we have enabled -Wshadow globally.
|
||||
#
|
||||
# Limit warning of shadow variables to in-tree SoC files for now.
|
||||
cmake_path(IS_PREFIX ZEPHYR_BASE "${SOC_DIR}" NORMALIZE _SOC_IS_IN_TREE)
|
||||
if(_SOC_IS_IN_TREE)
|
||||
add_compile_options($<TARGET_PROPERTY:compiler,warning_shadow_variables>)
|
||||
endif()
|
||||
unset(_SOC_IS_IN_TREE)
|
||||
|
||||
if(EXISTS ${SOC_DIR}/${ARCH}/CMakeLists.txt)
|
||||
add_subdirectory(${SOC_DIR}/${ARCH} soc/${ARCH})
|
||||
else()
|
||||
add_subdirectory(${SOC_DIR}/${ARCH}/${SOC_PATH} soc/${ARCH}/${SOC_PATH})
|
||||
endif()
|
Loading…
Add table
Add a link
Reference in a new issue