浏览代码

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
Ben Boeckel 9 年之前
父节点
当前提交
6f4f905483
共有 2 个文件被更改,包括 7 次插入6 次删除
  1. 1 1
      Modules/FindPkgConfig.cmake
  2. 6 5
      Tests/RunCMake/FindPkgConfig/FindPkgConfig_cache_variables.cmake

+ 1 - 1
Modules/FindPkgConfig.cmake

@@ -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})

+ 6 - 5
Tests/RunCMake/FindPkgConfig/FindPkgConfig_cache_variables.cmake

@@ -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
-      SET)
-    if (NOT ${variable})
-      message(FATAL_ERROR "Failed to set cache entry for NCURSES_${variable}")
+      PROPERTY  VALUE)
+    if (NOT value STREQUAL NCURSES_${variable})
+      message(FATAL_ERROR "Failed to set cache entry for NCURSES_${variable}:\nexpected -->${value}<--\nreceived -->${NCURSES_${variable}}<--")
     endif ()
     endif ()
   endforeach ()
   endforeach ()
 else ()
 else ()