From a5996120c6cf50aaaa9f137945ae07176f37b612 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Thu, 19 Sep 2019 11:28:32 +0000 Subject: [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 --- cmake/Modules/BuiltinTests.cmake | 6 ++++++ 1 file changed, 6 insertions(+) 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( -- cgit v1.2.1