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:
parent
d54104a1e5
commit
38b26b5d65
21
external/pico_sdk_import.cmake
vendored
21
external/pico_sdk_import.cmake
vendored
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user