summaryrefslogtreecommitdiff
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
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
-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(