diff options
author | Hans Wennborg <hans@hanshq.net> | 2019-09-19 11:28:32 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2019-09-19 11:28:32 +0000 |
commit | a5996120c6cf50aaaa9f137945ae07176f37b612 (patch) | |
tree | adb5fa13756a6e34033f34f789ebe572d07ac143 /cmake/Modules | |
parent | 121faed8f831cc672d10460e0ae2e65296b3e0d4 (diff) | |
download | compiler-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.cmake | 6 |
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( |