FindPkgConfig: set correctly named variables in cache (#15903)

The fix in commit v3.5.0-rc1~27^2 (FindPkgConfig: set standard variables
in the cache, 2016-01-20) added the wrong variable name to the cache.
The test was only testing that the cache variable existed, not that it
also had the correct value.  Update the test to ensure that the cache
value matches the local variable value.

Reported-by: Bernd Lörwald
This commit is contained in:
Ben Boeckel 2016-03-18 15:48:56 -04:00 committed by Brad King
parent b369959eb5
commit 6f4f905483
2 changed files with 7 additions and 6 deletions

View File

@ -383,7 +383,7 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma
pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir") pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir")
pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir") pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir")
foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR) foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR)
_pkgconfig_set("${_pkg_check_modules_pkg}_${variable}" "${${_pkg_check_modules_pkg}_${variable}}") _pkgconfig_set("${_pkg_check_prefix}_${variable}" "${${_pkg_check_prefix}_${variable}}")
endforeach () endforeach ()
if (NOT ${_is_silent}) if (NOT ${_is_silent})

View File

@ -1,14 +1,15 @@
cmake_minimum_required(VERSION 3.3)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(NCURSES QUIET ncurses) pkg_check_modules(NCURSES QUIET ncurses)
if (NCURSES_FOUND) if (NCURSES_FOUND)
foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR) foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR)
get_property("${variable}" get_property(value
CACHE "NCURSES_${variable}" CACHE "NCURSES_${variable}"
PROPERTY TYPE PROPERTY VALUE)
SET) if (NOT value STREQUAL NCURSES_${variable})
if (NOT ${variable}) message(FATAL_ERROR "Failed to set cache entry for NCURSES_${variable}:\nexpected -->${value}<--\nreceived -->${NCURSES_${variable}}<--")
message(FATAL_ERROR "Failed to set cache entry for NCURSES_${variable}")
endif () endif ()
endforeach () endforeach ()
else () else ()