clover: Pass unquoted compiler arguments to Clang
authorVedran Miletić <vedran@miletic.net>
Wed, 28 Sep 2016 15:11:43 +0000 (17:11 +0200)
committerFrancisco Jerez <currojerez@riseup.net>
Sun, 30 Oct 2016 19:14:59 +0000 (12:14 -0700)
commite3272865c216933168e6c08766d266a33d0e1497
treee985ca5c03785c57557fcd7f08f2029ccf04c76a
parent2a4a86862c949055c71637429f6d5f2e725d07d8
clover: Pass unquoted compiler arguments to Clang

OpenCL apps can quote arguments they pass to the OpenCL compiler, most
commonly include paths containing spaces.

If the Clang OpenCL compiler was called via a shell, the shell would
split the arguments with respect to to quotes and then remove quotes
before passing the arguments to the compiler. Since we call Clang as a
library, we have to split the argument with respect to quotes and then
remove quotes before passing the arguments.

v2: move to tokenize(), remove throwing of CL_INVALID_COMPILER_OPTIONS

v3: simplify parsing logic, use more C++11

v4: restore error throwing, clarify a comment

Signed-off-by: Vedran Miletić <vedran@miletic.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/gallium/state_trackers/clover/llvm/util.hpp