Browse Source

Protect implicit link library extraction with policy CMP0054

CMakeParseImplicitLinkInfo tests arbitrary content with `if(MATCHES)`.
Set policy CMP0054 to ensure the line content is never interpreted as a
variable reference (which may also produce a CMP0054 warning).

While at it, also set policy CMP0053 to improve performance.
Brad King 7 years ago
parent
commit
a353d10a75
1 changed files with 5 additions and 0 deletions
  1. 5 0
      Modules/CMakeParseImplicitLinkInfo.cmake

+ 5 - 0
Modules/CMakeParseImplicitLinkInfo.cmake

@@ -1,6 +1,9 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 
+cmake_policy(PUSH)
+cmake_policy(SET CMP0053 NEW)
+cmake_policy(SET CMP0054 NEW)
 
 # Function parse implicit linker options.
 # This is used internally by CMake and should not be included by user
@@ -185,3 +188,5 @@ function(CMAKE_PARSE_IMPLICIT_LINK_INFO text lib_var dir_var fwk_var log_var obj
   set(${fwk_var} "${implicit_fwks}" PARENT_SCOPE)
   set(${log_var} "${log}" PARENT_SCOPE)
 endfunction()
+
+cmake_policy(POP)