summaryrefslogtreecommitdiff
path: root/examples/CMakeLists.txt
blob: b458c9ce3e79a6ca63c7e5cec0f16e078cadab49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
cmake_minimum_required(VERSION 3.20)

include(${CMAKE_CURRENT_SOURCE_DIR}/../hw/bsp/family_support.cmake)

project(tinyusb_examples C CXX ASM)

set(EXAMPLES_LIST
  device
  dual
  host
  typec
  )
set(MAPJSON_PATTERNS "")

foreach (example ${EXAMPLES_LIST})
  add_subdirectory(${example})
  list(APPEND MAPJSON_PATTERNS "${CMAKE_BINARY_DIR}/${example}/*/*.map.json")
endforeach ()

# Post-build: run metrics.py on all map.json files
find_package(Python3 REQUIRED COMPONENTS Interpreter)
add_custom_target(tinyusb_metrics
  COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/metrics.py
  combine -f tinyusb/src -j -o ${CMAKE_BINARY_DIR}/metrics
  ${MAPJSON_PATTERNS}
  COMMENT "Generating average code size metrics"
  VERBATIM
  )

#add_custom_command(TARGET tinyusb_metrics POST_BUILD
#  COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/metrics.py compare ${TOP}/cmake-build/cmake-build-${BOARD}/metrics.json ${CMAKE_BINARY_DIR}/metrics.json
#  COMMENT "Generating average code size metrics"
#  VERBATIM
#  )