CMakeLists.txt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # SPDX-License-Identifier: Apache-2.0
  2. set(flag_for_ram_report ram)
  3. set(flag_for_rom_report rom)
  4. set(flag_for_footprint all -q)
  5. set(report_depth 99)
  6. if(DEFINED ZEPHYR_WORKSPACE)
  7. set(workspace_arg "--workspace=${ZEPHYR_WORKSPACE}")
  8. elseif(DEFINED WEST_TOPDIR)
  9. set(workspace_arg "--workspace=${WEST_TOPDIR}")
  10. endif()
  11. foreach(report ram_report rom_report footprint)
  12. add_custom_target(
  13. ${report}
  14. ${PYTHON_EXECUTABLE}
  15. ${ZEPHYR_BASE}/scripts/footprint/size_report
  16. -k ${ZEPHYR_BINARY_DIR}/${KERNEL_ELF_NAME}
  17. -z ${ZEPHYR_BASE}
  18. -o ${CMAKE_BINARY_DIR}
  19. ${workspace_arg}
  20. -d ${report_depth}
  21. ${flag_for_${report}}
  22. DEPENDS ${logical_target_for_zephyr_elf}
  23. $<TARGET_PROPERTY:zephyr_property_target,${report}_DEPENDENCIES>
  24. USES_TERMINAL
  25. WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
  26. )
  27. endforeach()
  28. find_program(PUNCOVER puncover)
  29. if(NOT ${PUNCOVER} STREQUAL PUNCOVER-NOTFOUND)
  30. add_custom_target(
  31. puncover
  32. ${PUNCOVER}
  33. --elf_file ${ZEPHYR_BINARY_DIR}/${KERNEL_ELF_NAME}
  34. --gcc_tools_base ${CROSS_COMPILE}
  35. --src_root ${ZEPHYR_BASE}
  36. --build_dir ${CMAKE_BINARY_DIR}
  37. DEPENDS ${logical_target_for_zephyr_elf}
  38. $<TARGET_PROPERTY:zephyr_property_target,${report}_DEPENDENCIES>
  39. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  40. USES_TERMINAL
  41. )
  42. endif()
  43. find_program(PAHOLE pahole)
  44. if(NOT ${PAHOLE} STREQUAL PAHOLE-NOTFOUND)
  45. add_custom_target(
  46. pahole
  47. ${PAHOLE}
  48. --anon_include
  49. --nested_anon_include
  50. --show_decl_info
  51. $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose>
  52. ${ZEPHYR_BINARY_DIR}/${KERNEL_ELF_NAME}
  53. DEPENDS ${logical_target_for_zephyr_elf}
  54. $<TARGET_PROPERTY:zephyr_property_target,${report}_DEPENDENCIES>
  55. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  56. USES_TERMINAL
  57. )
  58. endif()