Use LIST_SEPARATOR rather than escaping in ExternalProject_Add
authorPetr Hosek <phosek@chromium.org>
Mon, 27 Nov 2017 20:41:53 +0000 (20:41 +0000)
committerPetr Hosek <phosek@chromium.org>
Mon, 27 Nov 2017 20:41:53 +0000 (20:41 +0000)
Escaping ; in list arguments passed to ExternalProject_Add doesn't seem
to be working in newer versions of CMake (see
https://public.kitware.com/Bug/view.php?id=16137 for more details). Use
a custom LIST_SEPARATOR instead which is the officially supported way.

Differential Revision: https://reviews.llvm.org/D40232

llvm-svn: 319089

llvm/cmake/modules/LLVMExternalProjectUtils.cmake

index c9e9b65..90a9151 100644 (file)
@@ -95,7 +95,7 @@ function(llvm_ExternalProject_Add name source_dir)
   foreach(prefix ${ARG_PASSTHROUGH_PREFIXES})
     foreach(variableName ${variableNames})
       if(variableName MATCHES "^${prefix}")
-        string(REPLACE ";" "\;" value "${${variableName}}")
+        string(REPLACE ";" "," value "${${variableName}}")
         list(APPEND PASSTHROUGH_VARIABLES
           -D${variableName}=${value})
       endif()
@@ -159,6 +159,7 @@ function(llvm_ExternalProject_Add name source_dir)
     USES_TERMINAL_CONFIGURE 1
     USES_TERMINAL_BUILD 1
     USES_TERMINAL_INSTALL 1
+    LIST_SEPARATOR ,
     )
 
   if(ARG_USE_TOOLCHAIN)