1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # Finds (or builds) the Pioasm executable
- #
- # This will define the following variables
- #
- # Pioasm_FOUND
- #
- # and the following imported targets
- #
- # Pioasm
- #
- if (NOT Pioasm_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(PIOASM_SOURCE_DIR ${PICO_SDK_PATH}/tools/pioasm)
- set(PIOASM_BINARY_DIR ${CMAKE_BINARY_DIR}/pioasm)
- set(PioasmBuild_TARGET PioasmBuild)
- set(Pioasm_TARGET Pioasm)
- if (NOT TARGET ${PioasmBuild_TARGET})
- message("PIOASM will need to be built")
- # message("Adding external project ${PioasmBuild_Target} in ${CMAKE_CURRENT_LIST_DIR}}")
- ExternalProject_Add(${PioasmBuild_TARGET}
- PREFIX pioasm SOURCE_DIR ${PIOASM_SOURCE_DIR}
- BINARY_DIR ${PIOASM_BINARY_DIR}
- BUILD_ALWAYS 1 # force dependency checking
- INSTALL_COMMAND ""
- )
- endif()
- if (CMAKE_HOST_WIN32)
- set(Pioasm_EXECUTABLE ${PIOASM_BINARY_DIR}/pioasm.exe)
- else()
- set(Pioasm_EXECUTABLE ${PIOASM_BINARY_DIR}/pioasm)
- endif()
- if(NOT TARGET ${Pioasm_TARGET})
- # message("Adding executable ${Pioasm_Target} in ${CMAKE_CURRENT_LIST_DIR}")
- add_executable(${Pioasm_TARGET} IMPORTED)
- endif()
- set_property(TARGET ${Pioasm_TARGET} PROPERTY IMPORTED_LOCATION
- ${Pioasm_EXECUTABLE})
- # message("EXE is ${Pioasm_EXECUTABLE}")
- add_dependencies(${Pioasm_TARGET} ${PioasmBuild_TARGET})
- set(Pioasm_FOUND 1)
- endif()
|