# Finds (or builds) the ELF2UF2 executable # # This will define the following variables # # ELF2UF2_FOUND # # and the following imported targets # # ELF2UF2 # if (NOT ELF2UF2_FOUND) # todo we would like to use pckgconfig to look for it first # see https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/ include(ExternalProject) set(ELF2UF2_SOURCE_DIR ${PICO_SDK_PATH}/tools/elf2uf2) set(ELF2UF2_BINARY_DIR ${CMAKE_BINARY_DIR}/elf2uf2) set(ELF2UF2_BUILD_TARGET ELF2UF2Build) set(ELF2UF2_TARGET ELF2UF2) if (NOT TARGET ${ELF2UF2_BUILD_TARGET}) pico_message_debug("ELF2UF2 will need to be built") ExternalProject_Add(${ELF2UF2_BUILD_TARGET} PREFIX elf2uf2 SOURCE_DIR ${ELF2UF2_SOURCE_DIR} BINARY_DIR ${ELF2UF2_BINARY_DIR} BUILD_ALWAYS 1 # force dependency checking INSTALL_COMMAND "" ) endif() set(ELF2UF2_EXECUTABLE ${ELF2UF2_BINARY_DIR}/elf2uf2) if(NOT TARGET ${ELF2UF2_TARGET}) add_executable(${ELF2UF2_TARGET} IMPORTED) endif() set_property(TARGET ${ELF2UF2_TARGET} PROPERTY IMPORTED_LOCATION ${ELF2UF2_EXECUTABLE}) add_dependencies(${ELF2UF2_TARGET} ${ELF2UF2_BUILD_TARGET}) set(ELF2UF2_FOUND 1) endif()