Sfoglia il codice sorgente

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 anni fa
parent
commit
491d210898
1 ha cambiato i file con 5 aggiunte e 0 eliminazioni
  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.
 # Pre-compute a regex to match documented keywords for each command.
 math(EXPR _ep_documentation_line_count "${CMAKE_CURRENT_LIST_LINE} - 4")
 math(EXPR _ep_documentation_line_count "${CMAKE_CURRENT_LIST_LINE} - 4")
 file(STRINGS "${CMAKE_CURRENT_LIST_FILE}" lines
 file(STRINGS "${CMAKE_CURRENT_LIST_FILE}" lines
@@ -3035,3 +3038,5 @@ function(ExternalProject_Add name)
   #
   #
   _ep_add_test_command(${name})
   _ep_add_test_command(${name})
 endfunction()
 endfunction()
+
+cmake_policy(POP)