Skip to content
Snippets Groups Projects
Commit 796dea67 authored by Matthew Hanna's avatar Matthew Hanna
Browse files

FindPkgConfig: Recheck pkg-config on parameter change.

Currently, once pkg_check_modules succeeds, it will never call
_pkg_check_modules_internal again.  That means that if the parameters
to pkg_check_modules are changed, cmake will be called to reconfigure,
but nothing will change.  This change is to store the full string of
arguments to pkg_check_modules and override the FOUND optimization so
that the arguments are reevaluated when modified.
parent 6b4b8e6a
No related branches found
No related tags found
No related merge requests found
pkg-config-recheck
------------------
* Calls to the :module:`FindPkgConfig` module :command:`pkg_check_modules`
command following a successful call learned to re-evaluate the cached values
for a given prefix after changes to the parameters to the command for that
prefix.
......@@ -585,10 +585,13 @@ endmacro()
macro(pkg_check_modules _prefix _module0)
_pkgconfig_parse_options(_pkg_modules _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target "${_module0}" ${ARGN})
# check cached value
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND OR NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0};${ARGN}")
_pkg_check_modules_internal("${_pkg_is_required}" "${_pkg_is_silent}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} "${_prefix}" ${_pkg_modules})
_pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
if (${_prefix}_FOUND)
_pkgconfig_set(__pkg_config_arguments_${_prefix} "${_module0};${ARGN}")
endif()
elseif (${_prefix}_FOUND AND ${_imp_target})
_pkg_create_imp_target("${_prefix}" _no_cmake_path _no_cmake_environment_path)
endif()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment