summaryrefslogtreecommitdiff
path: root/cmake/Modules
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2019-09-19 11:28:32 +0000
committerHans Wennborg <hans@hanshq.net>2019-09-19 11:28:32 +0000
commita5996120c6cf50aaaa9f137945ae07176f37b612 (patch)
treeadb5fa13756a6e34033f34f789ebe572d07ac143 /cmake/Modules
parent121faed8f831cc672d10460e0ae2e65296b3e0d4 (diff)
downloadcompiler-rt-a5996120c6cf50aaaa9f137945ae07176f37b612.tar.gz
[cmake] Strip quotes in try_compile_only
After r372209, the compile command can end up including an argument with quotes in it, e.g. -fprofile-instr-use="/foo/bar.profdata" when invoking the compiler with execute_process, the compiler ends up getting that argument with quotes and all, and fails to open the file. This all seems horribly broken, but one way of working around it is to simply strip the quotes from the string here. If they were there to protect a path that's got spaces in it, that wasn't going to work anyway because the string is later split by spaces. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@372312 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake/Modules')
-rw-r--r--cmake/Modules/BuiltinTests.cmake6
1 files changed, 6 insertions, 0 deletions
diff --git a/cmake/Modules/BuiltinTests.cmake b/cmake/Modules/BuiltinTests.cmake
index eee77ad02..4a123638c 100644
--- a/cmake/Modules/BuiltinTests.cmake
+++ b/cmake/Modules/BuiltinTests.cmake
@@ -72,6 +72,12 @@ function(try_compile_only output)
endif()
endforeach()
+ # Strip quotes from the compile command, as the compiler is not expecting
+ # quoted arguments (see discussion on D62063 for when this can come up). If
+ # the quotes were there for arugments with spaces in them, the quotes were
+ # not going to help since the string gets split on spaces below.
+ string(REPLACE "\"" "" test_compile_command "${test_compile_command}")
+
string(REPLACE " " ";" test_compile_command "${test_compile_command}")
execute_process(