target_compile_options: Add syntax to specify shell strings
Options specified via COMPILE_OPTIONS
and INTERFACE_COMPILE_OPTIONS
are deduplicated, but individual options can legitimately be duplicated
when grouped with other options, e.g.
-D A -D B
After deduplication that becomes -D A B
. Therefore we need a way to
treat groups of options as units during deduplication. A simple approach
is to specify each group as one option, e.g.
"-D A" "-D B"
However, that conflicts with options that legitimately have spaces. To
break this ambiguity, add a SHELL:
prefix syntax to specify that an
option should be parsed like shell command line arguments after
deduplication, e.g.
"SHELL:-D A" "SHELL:-D B"
These will survive deduplication intact, and then be parsed to produce
-D A -D B
on the final command line.
Fixes: #15826 (closed)