mirror of
https://github.com/clockworkpi/PicoCalc.git
synced 2025-12-12 18:28:53 +01:00
switch order of picomite and sd_boot to make more space for progs of multi booter bin folder name changed to firmware ui interface improvments
105 lines
3.3 KiB
CMake
105 lines
3.3 KiB
CMake
|
|
# .-------------------------------------------------------------------------.
|
|
# | 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_sd_boot BUILT_boot)
|
|
add_dependencies(sd_boot PREPARE_sd_boot)
|
|
add_dependencies(BUILT_sd_boot sd_boot)
|
|
|
|
add_dependencies(PREPARE_picomite BUILT_sd_boot)
|
|
add_dependencies(picomite PREPARE_picomite)
|
|
add_dependencies(BUILT_picomite picomite)
|
|
|
|
|
|
# ***************************************************************************
|
|
# * Join the BOOT and all APP '.uf2' files together *
|
|
# ***************************************************************************
|
|
set(UF2S boot.uf2 sd_boot.uf2 picomite.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_picomite)
|
|
|
|
add_custom_target(${PROJECT} ALL DEPENDS JOIN)
|
|
|
|
# ***************************************************************************
|
|
# * Finished *
|
|
# ***************************************************************************
|