Squashed 'third_party/pico-sdk/' content from commit 2062372d2
Change-Id: Ic20f199d3ed0ea8d3a6a1bbf513f875ec7500cc6
git-subtree-dir: third_party/pico-sdk
git-subtree-split: 2062372d203b372849d573f252cf7c6dc2800c0a
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/tools/FindELF2UF2.cmake b/tools/FindELF2UF2.cmake
new file mode 100644
index 0000000..fb5dd97
--- /dev/null
+++ b/tools/FindELF2UF2.cmake
@@ -0,0 +1,43 @@
+# 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()