* Update to 2.0.0 SDK * Board type needs to be set before earliest SDK setup * Platform includes update * Boot2 files * Simple compilation issues * Build and link * PIO rebuild with version * Newlib wrapper update * Force inclusion of runtime_init_* fcns The linker was dropping all references to the library's included runtime_init_xxx functions and hence things like the IRQ vector table and mutexes and alarms weren't properly set up leading to instant crashes on start up.. Explicitly call out one function from the object file stored in the .A to force the inclusion of all the functions. May be a better way, heppy to hear any ideas. * Fix SPI GPIO calls * Fix Ethernet GPIO * Remove SDK warnings Remove the skipped error messages once the following PR merged: https://github.com/raspberrypi/pico-sdk/pull/1786 * BTStack moved SBC encode/decode paths * Platform.IO fixes * BT No longer has special absolute mouse * Rebuild and update OTA * Rebuild BearSSL, too * Update liker file to latest SDK * Clean up libpicocmake * Clean up LWIP/BT library names
84 lines
3.7 KiB
CMake
84 lines
3.7 KiB
CMake
# This is a copy of <PICO_SDK_PATH>/external/pico_sdk_import.cmake
|
|
|
|
# This can be dropped into an external project to help locate this SDK
|
|
# It should be include()ed prior to project()
|
|
|
|
if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH))
|
|
set(PICO_SDK_PATH $ENV{PICO_SDK_PATH})
|
|
message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')")
|
|
endif ()
|
|
|
|
if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT))
|
|
set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT})
|
|
message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')")
|
|
endif ()
|
|
|
|
if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH))
|
|
set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH})
|
|
message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')")
|
|
endif ()
|
|
|
|
if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_TAG} AND (NOT PICO_SDK_FETCH_FROM_GIT_TAG))
|
|
set(PICO_SDK_FETCH_FROM_GIT_TAG $ENV{PICO_SDK_FETCH_FROM_GIT_TAG})
|
|
message("Using PICO_SDK_FETCH_FROM_GIT_TAG from environment ('${PICO_SDK_FETCH_FROM_GIT_TAG}')")
|
|
endif ()
|
|
|
|
if (PICO_SDK_FETCH_FROM_GIT AND NOT PICO_SDK_FETCH_FROM_GIT_TAG)
|
|
set(PICO_SDK_FETCH_FROM_GIT_TAG "master")
|
|
message("Using master as default value for PICO_SDK_FETCH_FROM_GIT_TAG")
|
|
endif()
|
|
|
|
set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK")
|
|
set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable")
|
|
set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK")
|
|
set(PICO_SDK_FETCH_FROM_GIT_TAG "${PICO_SDK_FETCH_FROM_GIT_TAG}" CACHE FILEPATH "release tag for SDK")
|
|
|
|
if (NOT PICO_SDK_PATH)
|
|
if (PICO_SDK_FETCH_FROM_GIT)
|
|
include(FetchContent)
|
|
set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR})
|
|
if (PICO_SDK_FETCH_FROM_GIT_PATH)
|
|
get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}")
|
|
endif ()
|
|
# GIT_SUBMODULES_RECURSE was added in 3.17
|
|
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0")
|
|
FetchContent_Declare(
|
|
pico_sdk
|
|
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
|
|
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
|
|
GIT_SUBMODULES_RECURSE FALSE
|
|
)
|
|
else ()
|
|
FetchContent_Declare(
|
|
pico_sdk
|
|
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
|
|
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
|
|
)
|
|
endif ()
|
|
|
|
if (NOT pico_sdk)
|
|
message("Downloading Raspberry Pi Pico SDK")
|
|
FetchContent_Populate(pico_sdk)
|
|
set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR})
|
|
endif ()
|
|
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})
|
|
else ()
|
|
message(FATAL_ERROR
|
|
"SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git."
|
|
)
|
|
endif ()
|
|
endif ()
|
|
|
|
get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
|
|
if (NOT EXISTS ${PICO_SDK_PATH})
|
|
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found")
|
|
endif ()
|
|
|
|
set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake)
|
|
if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE})
|
|
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK")
|
|
endif ()
|
|
|
|
set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE)
|
|
|
|
include(${PICO_SDK_INIT_CMAKE_FILE})
|