From 687c5887af0752016964b85486fdf9b8f0994098 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 29 Dec 2023 15:51:20 +1100 Subject: [PATCH] HAL_ESP32: allow for building of examples and tool firmware on ESP32 use waf build target to find the right library name --- .../targets/esp32/esp-idf/CMakeLists.txt | 26 +++++++++------- .../targets/esp32s3/esp-idf/CMakeLists.txt | 30 +++++++++---------- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/libraries/AP_HAL_ESP32/targets/esp32/esp-idf/CMakeLists.txt b/libraries/AP_HAL_ESP32/targets/esp32/esp-idf/CMakeLists.txt index 07f1a4df7e8e7..5c03820e3f827 100644 --- a/libraries/AP_HAL_ESP32/targets/esp32/esp-idf/CMakeLists.txt +++ b/libraries/AP_HAL_ESP32/targets/esp32/esp-idf/CMakeLists.txt @@ -34,25 +34,31 @@ if(NOT DEFINED ARDUPILOT_CMD) set(ARDUPILOT_CMD "none") endif() -IF(${ARDUPILOT_CMD} STREQUAL "plane") +message("ARDUPILOT_CMD=${ARDUPILOT_CMD}") +message("WAF_BUILD_TARGET=${WAF_BUILD_TARGET}") + +string(REGEX MATCH "^(examples|tool)/" IS_EXAMPLE "${WAF_BUILD_TARGET}") + +if (IS_EXAMPLE) + string(REPLACE "/" ";" A ${WAF_BUILD_TARGET}) + list(GET A 0 EXAMPLE_BASE) + list(GET A 1 EXAMPLE_NAME) + message("Building ${EXAMPLE_BASE} ${EXAMPLE_NAME}") + target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/${EXAMPLE_BASE}/lib${EXAMPLE_NAME}.a") + target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libap.a") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "plane") message("Building for plane") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libarduplane.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libArduPlane_libs.a") -ENDIF() - -IF(${ARDUPILOT_CMD} STREQUAL "copter") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "copter") message("Building for copter") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libarducopter.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libArduCopter_libs.a") -ENDIF() - -IF(${ARDUPILOT_CMD} STREQUAL "rover") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "rover") message("Building for rover") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libardurover.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libRover_libs.a") -ENDIF() - -IF(${ARDUPILOT_CMD} STREQUAL "sub") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "sub") message("Building for submarine") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libardusub.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libArduSub_libs.a") diff --git a/libraries/AP_HAL_ESP32/targets/esp32s3/esp-idf/CMakeLists.txt b/libraries/AP_HAL_ESP32/targets/esp32s3/esp-idf/CMakeLists.txt index 7cf8efb64a3e5..4e0fafb3eac05 100644 --- a/libraries/AP_HAL_ESP32/targets/esp32s3/esp-idf/CMakeLists.txt +++ b/libraries/AP_HAL_ESP32/targets/esp32s3/esp-idf/CMakeLists.txt @@ -34,35 +34,35 @@ if(NOT DEFINED ARDUPILOT_CMD) set(ARDUPILOT_CMD "none") endif() -IF(${ARDUPILOT_CMD} STREQUAL "plane") +message("WAF_BUILD_TARGET=${WAF_BUILD_TARGET}") + +string(REGEX MATCH "^(examples|tool)/" IS_EXAMPLE "${WAF_BUILD_TARGET}") + +if (IS_EXAMPLE) + string(REPLACE "/" ";" A ${WAF_BUILD_TARGET}) + list(GET A 0 EXAMPLE_BASE) + list(GET A 1 EXAMPLE_NAME) + message("Building ${EXAMPLE_BASE} ${EXAMPLE_NAME}") + target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/${EXAMPLE_BASE}/lib${EXAMPLE_NAME}.a") + target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libap.a") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "plane") message("Building for plane") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libarduplane.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libArduPlane_libs.a") -ENDIF() - -IF(${ARDUPILOT_CMD} STREQUAL "copter") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "copter") message("Building for copter") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libarducopter.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libArduCopter_libs.a") -ENDIF() - -IF(${ARDUPILOT_CMD} STREQUAL "rover") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "rover") message("Building for rover") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libardurover.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libRover_libs.a") -ENDIF() - -IF(${ARDUPILOT_CMD} STREQUAL "sub") +ELSEIF(${ARDUPILOT_CMD} STREQUAL "sub") message("Building for submarine") target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libardusub.a") target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libArduSub_libs.a") ENDIF() -IF(${ARDUPILOT_CMD} STREQUAL "antennatracker") - message("Building AntennaTracker") - target_link_libraries(${elf_file} "${ARDUPILOT_BIN}/libantennatracker.a") - target_link_libraries(${elf_file} "${ARDUPILOT_LIB}/libAntennaTracker_libs.a") -ENDIF() add_custom_target(showinc ALL COMMAND echo -e "$"