mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-13 01:29:02 -05:00
FetchContent: Fix FIND_PACKAGE_ARGS not being passed to dep providers
Fixes: #25504
This commit is contained in:
@@ -1975,12 +1975,12 @@ macro(FetchContent_MakeAvailable)
|
||||
# This property might be defined but empty. As long as it is defined,
|
||||
# find_package() can be called.
|
||||
get_property(__cmake_addfpargs GLOBAL PROPERTY
|
||||
_FetchContent_${contentNameLower}_find_package_args
|
||||
_FetchContent_${__cmake_contentNameLower}_find_package_args
|
||||
DEFINED
|
||||
)
|
||||
if(__cmake_addfpargs)
|
||||
get_property(__cmake_fpargs GLOBAL PROPERTY
|
||||
_FetchContent_${contentNameLower}_find_package_args
|
||||
_FetchContent_${__cmake_contentNameLower}_find_package_args
|
||||
)
|
||||
string(APPEND __cmake_providerArgs " FIND_PACKAGE_ARGS")
|
||||
foreach(__cmake_item IN LISTS __cmake_fpargs)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
-- Before cmake_language
|
||||
-- After cmake_language
|
||||
-- Intercepted FetchContent_MakeAvailable\(SomeDep\)
|
||||
-- Provider invoked for method FETCHCONTENT_MAKEAVAILABLE_SERIAL with args: SOURCE_DIR;.*/Tests/RunCMake/DependencyProviders;BINARY_DIR;.*/Tests/RunCMake/DependencyProviders/ProviderFirst-build/_deps/somedep-build;EXTERNALPROJECT_INTERNAL_ARGUMENT_SEPARATOR;SOURCE_SUBDIR;DoesNotExist;FIND_PACKAGE_ARGS;QUIET;NO_DEFAULT_PATH;COMPONENTS;abc
|
||||
-- FetchContent_MakeAvailable\(\) succeeded
|
||||
-- Configuring done
|
||||
@@ -0,0 +1,8 @@
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(SomeDep
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}
|
||||
SOURCE_SUBDIR DoesNotExist
|
||||
FIND_PACKAGE_ARGS NO_DEFAULT_PATH COMPONENTS abc
|
||||
)
|
||||
FetchContent_MakeAvailable(SomeDep)
|
||||
message(STATUS "FetchContent_MakeAvailable() succeeded")
|
||||
@@ -61,6 +61,11 @@ run_cmake_with_options(RedirectFetchContentSerial
|
||||
-D "provider_command=redirect_FetchContentSerial_provider"
|
||||
-D "provider_methods=FETCHCONTENT_MAKEAVAILABLE_SERIAL"
|
||||
)
|
||||
run_cmake_with_options(ProviderFirst
|
||||
-D "CMAKE_PROJECT_TOP_LEVEL_INCLUDES=set_provider.cmake"
|
||||
-D "provider_command=FetchContentSerial_provider"
|
||||
-D "provider_methods=FETCHCONTENT_MAKEAVAILABLE_SERIAL"
|
||||
)
|
||||
run_cmake_with_options(Bypass
|
||||
-D "CMAKE_PROJECT_TOP_LEVEL_INCLUDES=set_provider.cmake"
|
||||
-D "provider_command=forward_find_package"
|
||||
|
||||
Reference in New Issue
Block a user