Skip to content

Commit c54475d

Browse files
authored
Remove deprecated uses of FetchContent_Populate (#2169)
* Remove deprecated uses of FetchContent_Populate Cannot use MakeAvailable as the files shouldn't be added to the build, so instead uses the full signature for FetchContent_Populate Fixes #2124 * Fix GIT_SUBMODULES_RECURSE for older CMake versions
1 parent 73d007f commit c54475d

File tree

2 files changed

+43
-31
lines changed

2 files changed

+43
-31
lines changed

external/pico_sdk_import.cmake

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,40 @@ if (NOT PICO_SDK_PATH)
4040
if (PICO_SDK_FETCH_FROM_GIT_PATH)
4141
get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}")
4242
endif ()
43-
# GIT_SUBMODULES_RECURSE was added in 3.17
44-
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0")
45-
FetchContent_Declare(
46-
pico_sdk
47-
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
48-
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
49-
GIT_SUBMODULES_RECURSE FALSE
50-
)
51-
else ()
52-
FetchContent_Declare(
53-
pico_sdk
54-
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
55-
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
56-
)
57-
endif ()
43+
FetchContent_Declare(
44+
pico_sdk
45+
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
46+
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
47+
)
5848

5949
if (NOT pico_sdk)
6050
message("Downloading Raspberry Pi Pico SDK")
61-
FetchContent_Populate(pico_sdk)
51+
# GIT_SUBMODULES_RECURSE was added in 3.17
52+
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0")
53+
FetchContent_Populate(
54+
pico_sdk
55+
QUIET
56+
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
57+
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
58+
GIT_SUBMODULES_RECURSE FALSE
59+
60+
SOURCE_DIR ${FETCHCONTENT_BASE_DIR}/pico_sdk-src
61+
BINARY_DIR ${FETCHCONTENT_BASE_DIR}/pico_sdk-build
62+
SUBBUILD_DIR ${FETCHCONTENT_BASE_DIR}/pico_sdk-subbuild
63+
)
64+
else ()
65+
FetchContent_Populate(
66+
pico_sdk
67+
QUIET
68+
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
69+
GIT_TAG ${PICO_SDK_FETCH_FROM_GIT_TAG}
70+
71+
SOURCE_DIR ${FETCHCONTENT_BASE_DIR}/pico_sdk-src
72+
BINARY_DIR ${FETCHCONTENT_BASE_DIR}/pico_sdk-build
73+
SUBBUILD_DIR ${FETCHCONTENT_BASE_DIR}/pico_sdk-subbuild
74+
)
75+
endif ()
76+
6277
set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR})
6378
endif ()
6479
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})

tools/Findpicotool.cmake

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ if (NOT TARGET picotool)
1515
endif ()
1616

1717
include(FetchContent)
18-
set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR})
1918
if (PICOTOOL_FETCH_FROM_GIT_PATH)
20-
get_filename_component(FETCHCONTENT_BASE_DIR "${PICOTOOL_FETCH_FROM_GIT_PATH}" ABSOLUTE)
19+
get_filename_component(picotool_INSTALL_DIR "${PICOTOOL_FETCH_FROM_GIT_PATH}" ABSOLUTE)
20+
else ()
21+
get_filename_component(picotool_INSTALL_DIR "${FETCHCONTENT_BASE_DIR}" ABSOLUTE)
2122
endif ()
23+
set(picotool_INSTALL_DIR ${picotool_INSTALL_DIR} CACHE PATH "Directory where picotool has been installed" FORCE)
2224

2325
set(picotool_BUILD_TARGET picotoolBuild)
2426
set(picotool_TARGET picotool)
@@ -32,20 +34,15 @@ if (NOT TARGET picotool)
3234
)
3335
endif()
3436

35-
FetchContent_Declare(
36-
picotool
37-
GIT_REPOSITORY https://github.com/raspberrypi/picotool.git
38-
GIT_TAG develop
39-
GIT_PROGRESS true
40-
)
37+
message("Downloading Picotool")
38+
FetchContent_Populate(picotool QUIET
39+
GIT_REPOSITORY https://github.com/raspberrypi/picotool.git
40+
GIT_TAG develop
4141

42-
FetchContent_GetProperties(picotool)
43-
set(picotool_INSTALL_DIR ${FETCHCONTENT_BASE_DIR} CACHE PATH "Directory where picotool has been installed" FORCE)
44-
if (NOT picotool_POPULATED)
45-
message("Downloading Picotool")
46-
FetchContent_Populate(picotool)
47-
endif ()
48-
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})
42+
SOURCE_DIR ${picotool_INSTALL_DIR}/picotool-src
43+
BINARY_DIR ${picotool_INSTALL_DIR}/picotool-build
44+
SUBBUILD_DIR ${picotool_INSTALL_DIR}/picotool-subbuild
45+
)
4946

5047
add_custom_target(picotoolForceReconfigure
5148
${CMAKE_COMMAND} -E touch_nocreate "${CMAKE_SOURCE_DIR}/CMakeLists.txt"

0 commit comments

Comments
 (0)