[PATCH] D73523: [CMake][compiler-rt] Replace Windows backslashes with CMake ones

Petr Hosek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 27 19:26:12 PST 2020


phosek created this revision.
phosek added reviewers: beanz, smeenai.
Herald added subscribers: llvm-commits, Sanitizers, mgorny, dberris.
Herald added projects: Sanitizers, LLVM.

XRay builds uses llvm-config to obtain the ldflags and libs and then
passes those to CMake. Unfortunately, this breaks on Windows because
CMake tries to interpret backslashes followed by certain characters
as flags. We need to rewrite these into forward slashes that are used
by CMake (even on Windows).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D73523

Files:
  compiler-rt/cmake/Modules/CompilerRTUtils.cmake


Index: compiler-rt/cmake/Modules/CompilerRTUtils.cmake
===================================================================
--- compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+++ compiler-rt/cmake/Modules/CompilerRTUtils.cmake
@@ -248,8 +248,10 @@
       string(REGEX REPLACE "[ \t]*[\r\n]+[ \t]*" ";" CONFIG_OUTPUT ${CONFIG_OUTPUT})
       list(GET CONFIG_OUTPUT 0 LDFLAGS)
       list(GET CONFIG_OUTPUT 1 LIBLIST)
-      set(LLVM_XRAY_LDFLAGS ${LDFLAGS} CACHE STRING "Linker flags for LLVMXRay library")
-      set(LLVM_XRAY_LIBLIST ${LIBLIST} CACHE STRING "Library list for LLVMXRay")
+      string(REPLACE "\\" "/" LDFLAGS ${LDFLAGS})
+      string(REPLACE "\\" "/" LIBLIST ${LIBLIST})
+      set(LLVM_XRAY_LDFLAGS ${LDFLAGS} CACHE STRING "Linker flags for LLVMXRay library" FORCE)
+      set(LLVM_XRAY_LIBLIST ${LIBLIST} CACHE STRING "Library list for LLVMXRay" FORCE)
       set(COMPILER_RT_HAS_LLVMXRAY TRUE)
     endif()
 
@@ -268,8 +270,10 @@
       if (LIBLIST STREQUAL "")
         message(WARNING "testingsupport library not installed, some tests will be skipped")
       else()
-        set(LLVM_TESTINGSUPPORT_LDFLAGS ${LDFLAGS} CACHE STRING "Linker flags for LLVMTestingSupport library")
-        set(LLVM_TESTINGSUPPORT_LIBLIST ${LIBLIST} CACHE STRING "Library list for LLVMTestingSupport")
+        string(REPLACE "\\" "/" LDFLAGS ${LDFLAGS})
+        string(REPLACE "\\" "/" LDFLAGS ${LIBLIST})
+        set(LLVM_TESTINGSUPPORT_LDFLAGS ${LDFLAGS} CACHE STRING "Linker flags for LLVMTestingSupport library" FORCE)
+        set(LLVM_TESTINGSUPPORT_LIBLIST ${LIBLIST} CACHE STRING "Library list for LLVMTestingSupport" FORCE)
         set(COMPILER_RT_HAS_LLVMTESTINGSUPPORT TRUE)
       endif()
     endif()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73523.240756.patch
Type: text/x-patch
Size: 1723 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200128/1b2097b5/attachment.bin>


More information about the llvm-commits mailing list