diff options
author | Brad King <brad.king@kitware.com> | 2018-03-12 13:10:57 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-03-14 15:10:25 (GMT) |
commit | ce0b9832163624291db04d38984c6aa7ea8ca7d7 (patch) | |
tree | 9e1bf0f74675e752b6582f2f239b953c1271521c /Tests/CompileOptions/main.cpp | |
parent | b340cacde869102b2b548b2e7ebc7341334f1d58 (diff) | |
download | CMake-ce0b9832163624291db04d38984c6aa7ea8ca7d7.zip CMake-ce0b9832163624291db04d38984c6aa7ea8ca7d7.tar.gz CMake-ce0b9832163624291db04d38984c6aa7ea8ca7d7.tar.bz2 |
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
Diffstat (limited to 'Tests/CompileOptions/main.cpp')
-rw-r--r-- | Tests/CompileOptions/main.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Tests/CompileOptions/main.cpp b/Tests/CompileOptions/main.cpp index 63a0480..4779b88 100644 --- a/Tests/CompileOptions/main.cpp +++ b/Tests/CompileOptions/main.cpp @@ -12,6 +12,28 @@ #endif #endif +#ifndef NO_DEF_TESTS +#ifndef DEF_A +#error Expected definition DEF_A +#endif + +#ifndef DEF_B +#error Expected definition DEF_B +#endif + +#ifndef DEF_C +#error Expected definition DEF_C +#endif + +#ifndef DEF_D +#error Expected definition DEF_D +#endif + +#ifndef DEF_STR +#error Expected definition DEF_STR +#endif +#endif + #include <string.h> int main() @@ -20,6 +42,9 @@ int main() #ifdef TEST_OCTOTHORPE && strcmp(TEST_OCTOTHORPE, "#") == 0 #endif +#ifndef NO_DEF_TESTS + && strcmp(DEF_STR, "string with spaces") == 0 +#endif && strcmp(EXPECTED_C_COMPILER_VERSION, TEST_C_COMPILER_VERSION) == 0 && strcmp(EXPECTED_CXX_COMPILER_VERSION, TEST_CXX_COMPILER_VERSION) == |