target_compile_options: Add syntax to specify shell strings
Options specified via
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
"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)