# Finds (or builds) the PICOTOOL executable # # This will define the following variables # # PICOTOOL_FOUND # # and the following imported targets # # PICOTOOL # if (NOT PICOTOOL_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(PICOTOOL_SOURCE_DIR ${PICO_SDK_PATH}/tools/picotool) set(PICOTOOL_BINARY_DIR ${CMAKE_BINARY_DIR}/picotool) set(PICOTOOL_BUILD_TARGET PicotoolBuild) set(PICOTOOL_TARGET Picotool) if (NOT TARGET ${PICOTOOL_BUILD_TARGET}) message("PICOTOOL will need to be built") ExternalProject_Add(${PICOTOOL_BUILD_TARGET} PREFIX picotool SOURCE_DIR ${PICOTOOL_SOURCE_DIR} BINARY_DIR ${PICOTOOL_BINARY_DIR} BUILD_ALWAYS 1 # force dependency checking INSTALL_COMMAND "" ) endif() set(PICOTOOL_EXECUTABLE ${PICOTOOL_BINARY_DIR}/picotool) if(NOT TARGET ${PICOTOOL_TARGET}) add_executable(${PICOTOOL_TARGET} IMPORTED) endif() set_property(TARGET ${PICOTOOL_TARGET} PROPERTY IMPORTED_LOCATION ${PICOTOOL_EXECUTABLE}) add_dependencies(${PICOTOOL_TARGET} ${PICOTOOL_BUILD_TARGET}) set(PICOTOOL_FOUND 1) endif()