59 lines
2.4 KiB
CMake
59 lines
2.4 KiB
CMake
# 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)
|
|
|
|
add_subdirectory(common)
|
|
|
|
if(HWMv1)
|
|
message(DEPRECATION "
|
|
---------------------------------------------------------------------
|
|
--- WARNING: Functionality to describe SoCs in HWMv1 is ---
|
|
--- deprecated and should be replaced with HWMv2, including ---
|
|
--- boards. HWMv1 SoCs support remains only to ease the migration ---
|
|
--- of out-of-tree SoCs and associated boards. It will not be ---
|
|
--- possible to build using HWMv1 SoCs at all in future releases. ---
|
|
---------------------------------------------------------------------"
|
|
)
|
|
|
|
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()
|
|
elseif(HWMv2)
|
|
# Below is inclusion of HWMv2 SoC CMake lists.
|
|
string(TOUPPER SOC_FAMILY_${SOC_FAMILY}_DIR family_setting_dir)
|
|
string(TOUPPER SOC_SERIES_${SOC_SERIES}_DIR series_setting_dir)
|
|
string(TOUPPER SOC_${SOC_NAME}_DIR soc_setting_dir)
|
|
|
|
if(DEFINED ${soc_setting_dir})
|
|
add_subdirectory(${${soc_setting_dir}} soc/${SOC_NAME})
|
|
elseif(DEFINED ${series_setting_dir})
|
|
add_subdirectory(${${series_setting_dir}} soc/${SOC_SERIES})
|
|
elseif(DEFINED ${family_setting_dir})
|
|
add_subdirectory(${${family_setting_dir}} soc/${SOC_FAMILY})
|
|
else()
|
|
message(FATAL_ERROR "No CMakeLists.txt file found for SoC: ${SOC_NAME}, "
|
|
"series: ${SOC_SERIES}, family: ${SOC_FAMILY}")
|
|
endif()
|
|
|
|
# Include all SoC roots except Zephyr, as we are already in the Zephyr SoC root.
|
|
set(local_soc_root ${SOC_ROOT})
|
|
list(REMOVE_ITEM local_soc_root ${ZEPHYR_BASE})
|
|
foreach(root ${local_soc_root})
|
|
cmake_path(GET root FILENAME name)
|
|
# A SoC root for HWMv1 may not contain a CMakeLists.txt file on this so
|
|
# let's check for existence before including.
|
|
if(EXISTS ${root}/soc/CMakeLists.txt)
|
|
add_subdirectory(${root}/soc soc/${name})
|
|
endif()
|
|
endforeach()
|
|
endif()
|