fruitjam-doom/src/pico/CMakeLists.txt
Jeff Epler 46b8cd8fbf WIP
core1 gets to "DVHSTX started" but the gfx_dma_handler is never reached
so no video is generated. and I don't know why not.
2025-08-16 11:18:12 -05:00

60 lines
2.2 KiB
CMake

add_library(common_pico INTERFACE)
target_sources(common_pico INTERFACE
${CMAKE_CURRENT_LIST_DIR}/i_glob.c
${CMAKE_CURRENT_LIST_DIR}/i_input.c
${CMAKE_CURRENT_LIST_DIR}/i_system.c
${CMAKE_CURRENT_LIST_DIR}/piconet.c
${CMAKE_CURRENT_LIST_DIR}/i_timer.c
${CMAKE_CURRENT_LIST_DIR}/i_video.c
${CMAKE_CURRENT_LIST_DIR}/stubs.c
${CMAKE_CURRENT_LIST_DIR}/i_picosound.c
)
if (PICO_ON_DEVICE)
target_sources(common_pico INTERFACE
${CMAKE_CURRENT_LIST_DIR}/blit.S
${CMAKE_CURRENT_LIST_DIR}/picoflash.c
)
pico_wrap_function(common_pico malloc)
pico_wrap_function(common_pico calloc)
pico_wrap_function(common_pico free)
target_compile_definitions(common_pico INTERFACE
PICO_HEAP_SIZE=0
USE_ZONE_FOR_MALLOC=1
)
target_link_libraries(common_pico INTERFACE hardware_i2c)
endif()
target_include_directories(common_pico INTERFACE
${CMAKE_CURRENT_LIST_DIR}
${CMAKE_CURRENT_LIST_DIR}/..
${CMAKE_CURRENT_LIST_DIR}/../../textscreen
)
target_compile_definitions(common_pico INTERFACE
NO_USE_MOUSE=1
PICO_AUDIO_I2S_PIO=1
PICO_AUDIO_I2S_DMA_IRQ=1
PICO_USE_SW_SPIN_LOCKS=0
PICO_USE_STACK_GUARDS=0 # todo we can actually use these sensibly, but right now we do overflow!
)
target_link_libraries(common_pico INTERFACE pico_stdlib pico_multicore)
if (USE_HSTX)
set(PIMORONI_PICO_PATH ${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/pimoroni-pico)
target_sources(common_pico INTERFACE
${CMAKE_CURRENT_LIST_DIR}/dvhstx_shim.cpp)
include(${PIMORONI_PICO_PATH}/pimoroni_pico_import.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/dvhstx/drivers/dvhstx/dvhstx.cmake)
target_link_libraries(common_pico INTERFACE dvhstx)
target_compile_definitions(common_pico INTERFACE USE_HSTX=1)
else()
pico_generate_pio_header(common_pico ${CMAKE_CURRENT_LIST_DIR}/video_doom.pio)
target_link_libraries(common_pico INTERFACE pico_scanvideo_dpi)
target_compile_definitions(common_pico INTERFACE USE_HSTX=0)
endif()
add_library(pico_cd INTERFACE)
if (TARGET tinyusb_host)
target_link_libraries(pico_cd INTERFACE tinyusb_host)
endif()