blob: f5d7908e5562413e50141766d1782231dabdd01b [file]
# driver helper
# can override driver choice by pre-setting BLIT_x_DRIVER
function(blit_driver DRV NAME)
set(var BLIT_${DRV}_DRIVER)
string(TOUPPER ${var} var)
if(NOT ${var})
set(${var} ${NAME} PARENT_SCOPE)
endif()
endfunction()
if(DEFINED PICO_ADDON)
# for boards that don't have a board in the pico sdk
# (usually because they are an add-on for a regular pico)
set(CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/board/${PICO_ADDON})
set(BOARD_ID ${PICO_ADDON})
else()
set(CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/board/${PICO_BOARD})
set(BOARD_ID ${PICO_BOARD})
endif()
if(NOT EXISTS ${CONFIG_PATH}/config.cmake)
set(CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/board/pico)
if(DEFINED PICO_ADDON)
message(WARNING "Using default config for \"${PICO_BOARD}\", add-on \"${PICO_ADDON}\"...")
else()
message(WARNING "Using default config for \"${PICO_BOARD}\"...")
endif()
endif()
include(${CONFIG_PATH}/config.cmake)
message("Using board config \"${BLIT_BOARD_NAME}\"")
if(EXISTS ${CONFIG_PATH}/config.h)
list(APPEND BLIT_BOARD_DEFINITIONS "BLIT_BOARD_CONFIG=\"${CONFIG_PATH}/config.h\"")
endif()
# board id definition
string(TOUPPER ${BOARD_ID} BOARD_ID)
list(APPEND BLIT_BOARD_DEFINITIONS BLIT_BOARD_${BOARD_ID})
# default drivers
if(NOT BLIT_AUDIO_DRIVER)
set(BLIT_AUDIO_DRIVER "none")
endif()
if(NOT BLIT_DISPLAY_DRIVER)
set(BLIT_DISPLAY_DRIVER "none")
endif()
if(NOT BLIT_LED_DRIVER)
set(BLIT_LED_DRIVER "none")
endif()
if(NOT BLIT_STORAGE_DRIVER)
set(BLIT_STORAGE_DRIVER "flash")
endif()
if(NOT BLIT_USB_DRIVER)
set(BLIT_USB_DRIVER "device")
endif()
# driver dependencies
if(BLIT_AUDIO_DRIVER STREQUAL "pwm")
set(BLIT_REQUIRE_PICO_EXTRAS TRUE)
list(APPEND BLIT_BOARD_LIBRARIES pico_audio_pwm)
endif()
if(BLIT_DISPLAY_DRIVER STREQUAL "picovision")
list(APPEND BLIT_BOARD_LIBRARIES aps6404 swd_load)
elseif(BLIT_DISPLAY_DRIVER STREQUAL "scanvideo")
set(BLIT_REQUIRE_PICO_EXTRAS TRUE)
set(BLIT_ENABLE_CORE1 TRUE)
list(APPEND BLIT_BOARD_LIBRARIES pico_scanvideo_dpi)
endif()
if("usb_hid" IN_LIST BLIT_INPUT_DRIVER)
list(APPEND BLIT_BOARD_DEFINITIONS INPUT_USB_HID)
endif()
if(BLIT_STORAGE_DRIVER STREQUAL "sd_spi")
list(APPEND BLIT_BOARD_DEFINITIONS STORAGE_SD)
endif()
if(BLIT_USB_DRIVER STREQUAL "host")
list(APPEND BLIT_BOARD_DEFINITIONS USB_HOST)
list(APPEND BLIT_BOARD_LIBRARIES tinyusb_host)
endif()