Both ram and rom reports print their outputs in the console and publish their reports in json. footprint is wrapper to generate both reports but it is currently not printing their outputs in the console nor given any feedback to the user that those reports were generated. Change it to behave like the others reports allowing the user to see them and / or redirect to a file if they want. Signed-off-by: Flavio Ceolin <flavio.ceolin@gmail.com>
103 lines
2.7 KiB
CMake
103 lines
2.7 KiB
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set(flag_for_ram_report ram)
|
|
set(flag_for_rom_report rom)
|
|
set(flag_for_footprint all)
|
|
set(report_depth 99)
|
|
|
|
if(DEFINED ZEPHYR_WORKSPACE)
|
|
set(workspace_arg "--workspace=${ZEPHYR_WORKSPACE}")
|
|
elseif(DEFINED WEST_TOPDIR)
|
|
set(workspace_arg "--workspace=${WEST_TOPDIR}")
|
|
endif()
|
|
|
|
foreach(report ram_report rom_report footprint)
|
|
add_custom_target(
|
|
${report}
|
|
${PYTHON_EXECUTABLE}
|
|
${ZEPHYR_BASE}/scripts/footprint/size_report
|
|
-k ${ZEPHYR_BINARY_DIR}/${KERNEL_ELF_NAME}
|
|
-z ${ZEPHYR_BASE}
|
|
-o ${CMAKE_BINARY_DIR}
|
|
${workspace_arg}
|
|
-d ${report_depth}
|
|
${flag_for_${report}}
|
|
DEPENDS ${logical_target_for_zephyr_elf}
|
|
$<TARGET_PROPERTY:zephyr_property_target,${report}_DEPENDENCIES>
|
|
USES_TERMINAL
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
endforeach()
|
|
|
|
if (CONFIG_BUILD_WITH_TFM)
|
|
foreach(report ram_report rom_report footprint)
|
|
add_custom_target(
|
|
tfm_${report}
|
|
${PYTHON_EXECUTABLE}
|
|
${ZEPHYR_BASE}/scripts/footprint/size_report
|
|
-k $<TARGET_PROPERTY:tfm,TFM_S_ELF_FILE>
|
|
-z ${ZEPHYR_BASE}
|
|
-o ${CMAKE_BINARY_DIR}
|
|
${workspace_arg}
|
|
-d ${report_depth}
|
|
${flag_for_${report}}
|
|
DEPENDS tfm
|
|
USES_TERMINAL
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
endforeach()
|
|
endif()
|
|
|
|
if (CONFIG_TFM_BL2)
|
|
foreach(report ram_report rom_report footprint)
|
|
add_custom_target(
|
|
bl2_${report}
|
|
${PYTHON_EXECUTABLE}
|
|
${ZEPHYR_BASE}/scripts/footprint/size_report
|
|
-k $<TARGET_PROPERTY:tfm,BL2_ELF_FILE>
|
|
-z ${ZEPHYR_BASE}
|
|
-o ${CMAKE_BINARY_DIR}
|
|
${workspace_arg}
|
|
-d ${report_depth}
|
|
${flag_for_${report}}
|
|
DEPENDS tfm
|
|
USES_TERMINAL
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
endforeach()
|
|
endif()
|
|
|
|
find_program(PUNCOVER puncover)
|
|
|
|
if(NOT ${PUNCOVER} STREQUAL PUNCOVER-NOTFOUND)
|
|
add_custom_target(
|
|
puncover
|
|
${PUNCOVER}
|
|
--elf_file ${ZEPHYR_BINARY_DIR}/${KERNEL_ELF_NAME}
|
|
--gcc_tools_base ${CROSS_COMPILE}
|
|
--src_root ${ZEPHYR_BASE}
|
|
--build_dir ${CMAKE_BINARY_DIR}
|
|
DEPENDS ${logical_target_for_zephyr_elf}
|
|
$<TARGET_PROPERTY:zephyr_property_target,${report}_DEPENDENCIES>
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
USES_TERMINAL
|
|
)
|
|
endif()
|
|
|
|
find_program(PAHOLE pahole)
|
|
|
|
if(NOT ${PAHOLE} STREQUAL PAHOLE-NOTFOUND)
|
|
add_custom_target(
|
|
pahole
|
|
${PAHOLE}
|
|
--anon_include
|
|
--nested_anon_include
|
|
--show_decl_info
|
|
$<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose>
|
|
${ZEPHYR_BINARY_DIR}/${KERNEL_ELF_NAME}
|
|
DEPENDS ${logical_target_for_zephyr_elf}
|
|
$<TARGET_PROPERTY:zephyr_property_target,${report}_DEPENDENCIES>
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
USES_TERMINAL
|
|
)
|
|
endif()
|