Pārlūkot izejas kodu

ExternalProject: Avoid if() auto-dereferene in quoted arguments

The implementation of this module doesn't expect such dereferences
to happen, but can when a project sets a variable called `x`.
Set `CMP0054` explicitly to get its NEW behavior.

Fixes: #17335
Brad King 8 gadi atpakaļ
vecāks
revīzija
491d210898
1 mainītis faili ar 5 papildinājumiem un 0 dzēšanām
  1. 5 0
      Modules/ExternalProject.cmake

+ 5 - 0
Modules/ExternalProject.cmake

@@ -854,6 +854,9 @@ The custom step could then be triggered from the main build like so::
 
 #]=======================================================================]
 
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+
 # Pre-compute a regex to match documented keywords for each command.
 math(EXPR _ep_documentation_line_count "${CMAKE_CURRENT_LIST_LINE} - 4")
 file(STRINGS "${CMAKE_CURRENT_LIST_FILE}" lines
@@ -3035,3 +3038,5 @@ function(ExternalProject_Add name)
   #
   _ep_add_test_command(${name})
 endfunction()
+
+cmake_policy(POP)