mirror of
https://github.com/clockworkpi/PicoCalc.git
synced 2026-03-24 04:52:38 +01:00
add pico_multi_booter code
This commit is contained in:
104
Code/pico_multi_booter/CMakeLists.txt
Normal file
104
Code/pico_multi_booter/CMakeLists.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
|
||||
# .-------------------------------------------------------------------------.
|
||||
# | MIT Licensed : Copyright 2022, "Hippy" |
|
||||
# `-------------------------------------------------------------------------'
|
||||
|
||||
# ***************************************************************************
|
||||
# * This project - Build a combined booter and some apps *
|
||||
# ***************************************************************************
|
||||
|
||||
set(PROJECT pico_multi_booter)
|
||||
set(BOOT boot)
|
||||
set(OUTPUT combined.uf2)
|
||||
|
||||
# .-------------------------------------------------------------------------.
|
||||
# | The usual CMake prerequisites |
|
||||
# `-------------------------------------------------------------------------'
|
||||
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
|
||||
project(${PROJECT} C CXX ASM)
|
||||
|
||||
pico_sdk_init()
|
||||
|
||||
|
||||
# .-------------------------------------------------------------------------.
|
||||
# | The other things we need to complete the build |
|
||||
# `-------------------------------------------------------------------------'
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
|
||||
add_subdirectory(picomite)
|
||||
add_subdirectory(sd_boot)
|
||||
|
||||
### build boot.uf2
|
||||
add_executable(${BOOT} boot.c)
|
||||
target_link_libraries(${BOOT} pico_stdlib
|
||||
hardware_pio
|
||||
)
|
||||
|
||||
target_compile_options(${BOOT} PRIVATE
|
||||
-Os
|
||||
-Wall
|
||||
-Werror
|
||||
-Wno-unused-variable
|
||||
-Wno-unused-function
|
||||
)
|
||||
pico_enable_stdio_usb(${BOOT} 0)
|
||||
pico_enable_stdio_uart(${BOOT} 1)
|
||||
pico_add_uf2_output(${BOOT})
|
||||
|
||||
target_link_libraries(${BOOT}
|
||||
hardware_resets
|
||||
cmsis_core
|
||||
)
|
||||
pico_set_binary_type(${BOOT} copy_to_ram)
|
||||
|
||||
add_custom_target(BUILT_${BOOT}
|
||||
COMMENT "Record Build Details for '${BOOT}'"
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BOOT}.uf2
|
||||
COMMAND ${Python3_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/applink.py BUILT
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${BOOT}
|
||||
)
|
||||
|
||||
|
||||
# ***************************************************************************
|
||||
# * Build the BOOT plus all the APPS *
|
||||
# ***************************************************************************
|
||||
|
||||
|
||||
add_dependencies(BUILT_boot boot)
|
||||
|
||||
add_dependencies(PREPARE_picomite BUILT_boot)
|
||||
add_dependencies(picomite PREPARE_picomite)
|
||||
add_dependencies(BUILT_picomite picomite)
|
||||
|
||||
add_dependencies(PREPARE_sd_boot BUILT_picomite)
|
||||
add_dependencies(sd_boot PREPARE_sd_boot)
|
||||
add_dependencies(BUILT_sd_boot sd_boot)
|
||||
|
||||
|
||||
# ***************************************************************************
|
||||
# * Join the BOOT and all APP '.uf2' files together *
|
||||
# ***************************************************************************
|
||||
set(UF2S boot.uf2 picomite.uf2 sd_boot.uf2)
|
||||
|
||||
add_custom_target(JOIN
|
||||
COMMENT "Combine the '.uf2' files"
|
||||
COMMAND ${Python3_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/applink.py JOIN
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${OUTPUT}
|
||||
${UF2S}
|
||||
)
|
||||
|
||||
add_dependencies(JOIN BUILT_sd_boot)
|
||||
|
||||
add_custom_target(${PROJECT} ALL DEPENDS JOIN)
|
||||
|
||||
# ***************************************************************************
|
||||
# * Finished *
|
||||
# ***************************************************************************
|
||||
Reference in New Issue
Block a user