Skip to content

target_compile_options: Add syntax to specify shell strings

Brad King requested to merge brad.king/cmake:compile-options-shell into master

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)

Merge request reports