@@ -18,6 +18,7 @@ cmake_minimum_required(VERSION 3.19)
1818
1919include (FetchContent )
2020
21+ # Note that this function only fetches the content and does NOT make it available
2122function (jamba_fetch_content )
2223 set (oneValueArgs NAME GIT_REPO GIT_TAG DOWNLOAD_URL DOWNLOAD_URL_HASH ROOT_DIR)
2324
@@ -54,36 +55,38 @@ function(jamba_fetch_content)
5455
5556 if (ARG_ROOT_DIR)
5657 message (STATUS "Using ${ARG_NAME} from local ${ARG_ROOT_DIR} " )
57- FetchContent_Populate (${ARG_NAME}
58- QUIET
59- SOURCE_DIR "${ARG_ROOT_DIR} "
60- BINARY_DIR " ${ CMAKE_CURRENT_BINARY_DIR } / ${ARG_NAME} -build"
58+ FetchContent_Declare (${ARG_NAME}
59+ SOURCE_DIR " ${ARG_ROOT_DIR} "
60+ BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR } / ${ARG_NAME} -build "
61+ SOURCE_SUBDIR "do_not_make_available" # invalid folder to not execute CMakeLists.txt
6162 )
6263 else ()
6364 if (ARG_DOWNLOAD_URL)
6465 message (STATUS "Fetching ${ARG_NAME} from ${ARG_DOWNLOAD_URL} " )
65- FetchContent_Populate ( ${ARG_NAME}
66- QUIET
66+ FetchContent_Declare ( ${ARG_NAME}
6767 URL "${ARG_DOWNLOAD_URL} "
6868 URL_HASH "${ARG_DOWNLOAD_URL_HASH} "
6969 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR } /${ARG_NAME} -src"
7070 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR } /${ARG_NAME} -build"
7171 DOWNLOAD_EXTRACT_TIMESTAMP true
72+ SOURCE_SUBDIR "do_not_make_available"
7273 )
7374 else ()
7475 message (STATUS "Fetching ${ARG_NAME} from ${ARG_GIT_REPO} /tree/${ARG_GIT_TAG} " )
75- FetchContent_Populate (${ARG_NAME}
76- QUIET
77- GIT_REPOSITORY ${ARG_GIT_REPO }
78- GIT_TAG ${ARG_GIT_TAG}
79- GIT_CONFIG advice.detachedHead= false
80- GIT_SHALLOW true
81- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR } /${ARG_NAME} -src "
82- BINARY_DIR " ${ CMAKE_CURRENT_BINARY_DIR } / ${ARG_NAME} -build "
76+ FetchContent_Declare (${ARG_NAME}
77+ GIT_REPOSITORY ${ARG_GIT_REPO}
78+ GIT_TAG ${ARG_GIT_TAG }
79+ GIT_CONFIG advice.detachedHead= false
80+ GIT_SHALLOW true
81+ SOURCE_DIR " ${ CMAKE_CURRENT_BINARY_DIR } / ${ARG_NAME} -src"
82+ BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR } /${ARG_NAME} -build "
83+ SOURCE_SUBDIR "do_not_make_available "
8384 )
8485 endif ()
8586 endif ()
8687
88+ FetchContent_MakeAvailable (${ARG_NAME} )
89+
8790 set (${ARG_NAME} _ROOT_DIR "${${ARG_NAME} _SOURCE_DIR}" PARENT_SCOPE )
8891 set (${ARG_NAME} _SOURCE_DIR "${${ARG_NAME} _SOURCE_DIR}" PARENT_SCOPE )
8992 set (${ARG_NAME} _BINARY_DIR "${${ARG_NAME} _BINARY_DIR}" PARENT_SCOPE )
0 commit comments