pico_sdk_import: don't recurse git submodules (#772)

When cloning the pico-sdk repo manually, one normally would do `git
submodule update --init`, which is non-recursive. However, when cloning
automatically, CMake will recursively update submodules by default.
Updating all of tiny-usb's submodules takes an extremely long time.
Luckily, CMake 3.17 added an option we can specify for FetchContent to
tell it not to recursively update submodules. On older CMake versions,
the flag is not used. For those with a new enough version of CMake, this
will significantly speed up SDK cloning.

Fixes #771.
This commit is contained in:
Will Eccles 2022-04-04 16:29:33 -04:00 committed by GitHub
parent d54104a1e5
commit 38b26b5d65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,11 +29,22 @@ if (NOT PICO_SDK_PATH)
if (PICO_SDK_FETCH_FROM_GIT_PATH) 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}") get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}")
endif () endif ()
FetchContent_Declare( # GIT_SUBMODULES_RECURSE was added in 3.17
pico_sdk if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0")
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk FetchContent_Declare(
GIT_TAG master pico_sdk
) GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
GIT_TAG master
GIT_SUBMODULES_RECURSE FALSE
)
else ()
FetchContent_Declare(
pico_sdk
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
GIT_TAG master
)
endif ()
if (NOT pico_sdk) if (NOT pico_sdk)
message("Downloading Raspberry Pi Pico SDK") message("Downloading Raspberry Pi Pico SDK")
FetchContent_Populate(pico_sdk) FetchContent_Populate(pico_sdk)