mirror of
https://github.com/clockworkpi/PicoCalc.git
synced 2025-12-12 18:28:53 +01:00
175 lines
4.6 KiB
CMake
175 lines
4.6 KiB
CMake
|
|
|
|
set(APP_NAME picomite)
|
|
set(PICOCALC true)
|
|
#set(SDBOOT true)
|
|
|
|
# Compile for PICO 1 Board
|
|
set(COMPILE PICO)
|
|
|
|
set(PICO_PLATFORM rp2040)
|
|
set(PICO_BOARD pico)
|
|
|
|
|
|
add_executable(${APP_NAME}
|
|
PicoMite.c
|
|
Memory.c
|
|
regex.c
|
|
MMBasic.c
|
|
Operators.c
|
|
Custom.c
|
|
Functions.c
|
|
Commands.c
|
|
FileIO.c
|
|
ff.c
|
|
ffsystem.c
|
|
ffunicode.c
|
|
mmc_stm32.c
|
|
Draw.c
|
|
Editor.c
|
|
XModem.c
|
|
MM_Misc.c
|
|
External.c
|
|
MATHS.c
|
|
Onewire.c
|
|
I2C.c
|
|
SPI.c
|
|
Serial.c
|
|
SPI-LCD.c
|
|
BmpDecoder.c
|
|
GPS.c
|
|
Audio.c
|
|
CFunction.c
|
|
picojpeg.c
|
|
lfs.c
|
|
lfs_util.c
|
|
hxcmod.c
|
|
VS1053.c
|
|
aes.c
|
|
)
|
|
|
|
target_sources(${APP_NAME} PRIVATE
|
|
SSD1963.c
|
|
Touch.c
|
|
GUI.c)
|
|
|
|
target_sources(${APP_NAME} PRIVATE
|
|
Keyboard.c
|
|
mouse.c
|
|
)
|
|
|
|
|
|
|
|
if(PICOCALC STREQUAL "true")
|
|
target_sources(${APP_NAME} PRIVATE
|
|
picocalc/i2ckbd.c
|
|
)
|
|
endif()
|
|
|
|
set_source_files_properties(mmc_stm32.c PROPERTIES COMPILE_FLAGS -O2)
|
|
set_source_files_properties(ff.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(GUI.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(BmpDecoder.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(GPS.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(I2C.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(lfs.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(picojpeg.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(regex.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(hxcmod.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(MATHS.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(Editor.c PROPERTIES COMPILE_FLAGS -Os)
|
|
set_source_files_properties(aes.c PROPERTIES COMPILE_FLAGS -Os)
|
|
pico_generate_pio_header(${APP_NAME} ${CMAKE_CURRENT_LIST_DIR}/PicoMiteI2S.pio)
|
|
|
|
pico_define_boot_stage2(slower_boot2 ${PICO_DEFAULT_BOOT_STAGE2_FILE})
|
|
target_compile_definitions(slower_boot2 PRIVATE PICO_FLASH_SPI_CLKDIV=4)
|
|
pico_set_boot_stage2(${APP_NAME} slower_boot2)
|
|
|
|
pico_enable_stdio_usb(${APP_NAME} 1)
|
|
pico_enable_stdio_uart(${APP_NAME} 0)
|
|
|
|
pico_add_extra_outputs(${APP_NAME})
|
|
pico_add_uf2_output(${APP_NAME})
|
|
|
|
target_link_options(${APP_NAME} PRIVATE -Wl,--print-memory-usage)
|
|
target_link_options(${APP_NAME} PRIVATE -Wl,-z,max-page-size=4096)
|
|
|
|
pico_set_linker_script(${APP_NAME} ${CMAKE_BINARY_DIR}/${APP_NAME}.ld)
|
|
|
|
|
|
pico_set_printf_implementation(${APP_NAME} compiler)
|
|
|
|
target_compile_options(${APP_NAME} PRIVATE -DNDEBUG
|
|
-DPICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE=0
|
|
-DPICO_ADC_CLKDIV_ROUND_NEAREST
|
|
-DPICO_XOSC_STARTUP_DELAY_MULTIPLIER=64
|
|
-DPICO_CLOCK_AJDUST_PERI_CLOCK_WITH_SYS_CLOCK
|
|
-DPICO_XOSC_STARTUP_DELAY_MULTIPLIER=64
|
|
-DPICO_FLASH_SIZE_BYTES=16777216
|
|
-DPICO_CORE1_STACK_SIZE=0x00
|
|
-DPICO_MALLOC_PANIC
|
|
-O2
|
|
-Wall)
|
|
|
|
|
|
target_compile_options(${APP_NAME} PRIVATE -DPICOMITE
|
|
-DPICO_HEAP_SIZE=0x1000
|
|
-DGUICONTROLS
|
|
-DPICO_CORE0_STACK_SIZE=0x1000
|
|
)
|
|
|
|
#set the PICOCALC flag
|
|
if(PICOCALC STREQUAL "true")
|
|
target_compile_options(${APP_NAME} PRIVATE -DPICOCALC
|
|
)
|
|
endif()
|
|
|
|
|
|
target_link_libraries(${APP_NAME}
|
|
pico_stdlib
|
|
hardware_flash
|
|
hardware_irq
|
|
hardware_adc
|
|
hardware_pwm
|
|
hardware_i2c
|
|
hardware_spi
|
|
hardware_dma
|
|
hardware_exception
|
|
hardware_pio
|
|
pico_multicore
|
|
pico_unique_id
|
|
)
|
|
|
|
|
|
set(UF2_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${APP_NAME}.uf2)
|
|
set(UF2_DEST ${CMAKE_BINARY_DIR}/${APP_NAME}.uf2)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${UF2_DEST}
|
|
DEPENDS ${UF2_SOURCE}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${UF2_SOURCE} ${UF2_DEST}
|
|
COMMENT "Copying ${APP_NAME}.uf2 to top-level build dir"
|
|
)
|
|
|
|
|
|
add_custom_target(PREPARE_${APP_NAME}
|
|
COMMENT "Create Linker Script for '${APP_NAME}'"
|
|
COMMAND ${Python3_EXECUTABLE}
|
|
${CMAKE_SOURCE_DIR}/applink.py PREPARE
|
|
${CMAKE_BINARY_DIR}
|
|
${APP_NAME})
|
|
|
|
add_custom_target(BUILT_${APP_NAME}
|
|
COMMENT "Record Build Details for '${APP_NAME}'"
|
|
DEPENDS ${UF2_DEST}
|
|
COMMAND ${Python3_EXECUTABLE}
|
|
${CMAKE_SOURCE_DIR}/applink.py BUILT
|
|
${CMAKE_BINARY_DIR}
|
|
${APP_NAME})
|
|
|
|
|
|
|
|
if(SDBOOT STREQUAL "true")
|
|
pico_set_linker_script(${APP_NAME} ${CMAKE_SOURCE_DIR}/memmap_sdcard_app.ld)
|
|
endif()
|