]> granicus.if.org Git - esp-idf/blob - components/ulp/component_ulp_common.cmake
ethernet: add iperf example to test real bandwidth
[esp-idf] / components / ulp / component_ulp_common.cmake
1 if(NOT CMAKE_BUILD_EARLY_EXPANSION)
2     spaces2list(ULP_S_SOURCES)
3     foreach(ulp_s_source ${ULP_S_SOURCES})
4         get_filename_component(ulp_s_source ${ulp_s_source} ABSOLUTE)
5         list(APPEND ulp_s_sources ${ulp_s_source})
6     endforeach()
7
8     foreach(ulp_s_source ${ulp_s_sources})
9         get_filename_component(ulp_ps_source ${ulp_s_source} NAME_WE)
10         set(ulp_ps_output ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}/${ulp_ps_source}.ulp.S)
11         list(APPEND ulp_ps_sources ${ulp_ps_output})
12     endforeach()
13
14     set(ulp_artifacts_prefix ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}/${ULP_APP_NAME})
15
16     set(ulp_artifacts ${ulp_artifacts_prefix}.bin
17                         ${ulp_artifacts_prefix}.ld
18                         ${ulp_artifacts_prefix}.h)
19
20     set(ulp_artifacts_extras ${ulp_artifacts_prefix}.map
21                         ${ulp_artifacts_prefix}.sym
22                         ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}/esp32.ulp.ld)
23
24     externalproject_add(${ULP_APP_NAME}
25         SOURCE_DIR ${IDF_PATH}/components/ulp/cmake
26         BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}
27         INSTALL_COMMAND ""
28         CMAKE_ARGS  -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
29                     -DCMAKE_TOOLCHAIN_FILE=${IDF_PATH}/components/ulp/cmake/toolchain-ulp.cmake
30                     -DULP_S_SOURCES=${ulp_s_sources} -DULP_APP_NAME=${ULP_APP_NAME}
31                     -DCOMPONENT_PATH=${COMPONENT_PATH}
32                     -DCOMPONENT_INCLUDES=$<TARGET_PROPERTY:${COMPONENT_NAME},INTERFACE_INCLUDE_DIRECTORIES>
33                     -DIDF_PATH=${IDF_PATH}
34                     -DSDKCONFIG=${SDKCONFIG_HEADER}
35         BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME} --target build
36         BUILD_BYPRODUCTS ${ulp_artifacts} ${ulp_artifacts_extras} ${ulp_ps_sources}
37                         ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}/${ULP_APP_NAME}
38         BUILD_ALWAYS 1
39         )
40
41     spaces2list(ULP_EXP_DEP_SRCS)
42     set_source_files_properties(${ULP_EXP_DEP_SRCS} PROPERTIES OBJECT_DEPENDS ${ulp_artifacts})
43
44     include_directories(${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME})
45
46     add_custom_target(${ULP_APP_NAME}_artifacts DEPENDS ${ULP_APP_NAME})
47
48     add_dependencies(${COMPONENT_NAME} ${ULP_APP_NAME}_artifacts)
49
50     target_linker_script(${COMPONENT_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}/${ULP_APP_NAME}.ld)
51     target_add_binary_data(${COMPONENT_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${ULP_APP_NAME}/${ULP_APP_NAME}.bin BINARY)
52 endif()