summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-01-26 15:40:42 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2017-01-26 15:40:42 (GMT)
commit4ab35eb661f92686cc3ed3a1b52f7c2ef49bf8a1 (patch)
tree8dafc6b8a3eb4b2dd02f9a34453a538c78a47dfd
parent09cad3090415fbe59474232675e8124c8332116a (diff)
parent796dea67a68be432f98e2fef50059c93106557a2 (diff)
downloadCMake-4ab35eb661f92686cc3ed3a1b52f7c2ef49bf8a1.zip
CMake-4ab35eb661f92686cc3ed3a1b52f7c2ef49bf8a1.tar.gz
CMake-4ab35eb661f92686cc3ed3a1b52f7c2ef49bf8a1.tar.bz2
Merge topic 'pkg-config-recheck'
796dea67 FindPkgConfig: Recheck pkg-config on parameter change.
-rw-r--r--Help/release/dev/pkg-config-recheck.rst7
-rw-r--r--Modules/FindPkgConfig.cmake5
2 files changed, 11 insertions, 1 deletions
diff --git a/Help/release/dev/pkg-config-recheck.rst b/Help/release/dev/pkg-config-recheck.rst
new file mode 100644
index 0000000..950c3c8
--- /dev/null
+++ b/Help/release/dev/pkg-config-recheck.rst
@@ -0,0 +1,7 @@
+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.
diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake
index 8b7131b..1958f4b 100644
--- a/Modules/FindPkgConfig.cmake
+++ b/Modules/FindPkgConfig.cmake
@@ -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()