Last active
February 2, 2020 02:45
-
-
Save pmolodo/ac6941b7337c607b10521a57cac85b70 to your computer and use it in GitHub Desktop.
cmake_quoting_test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env cmake -P | |
cmake_minimum_required(VERSION 2.8) | |
# This results in this output: | |
# -- ======================== | |
# -- empty_var: "" | |
# -- ------- | |
# -- Unquoted parsing: print_args() | |
# -- ARGC: 0 | |
# -- ------- | |
# -- Quoted parsing: print_args("") | |
# -- ARGC: 1 | |
# -- ARGV0: | |
# -- ------- | |
# -- Unquoted expansion: print_args(${empty_var}) | |
# -- ARGC: 0 | |
# -- ------- | |
# -- Quoted expansion: print_args("${empty_var}") | |
# -- ARGC: 1 | |
# -- ARGV0: | |
# -- ======================== | |
# -- var_with_spaces: "foo bar" | |
# -- ------- | |
# -- Unquoted parsing: print_args(foo bar) | |
# -- ARGC: 2 | |
# -- ARGV0: foo | |
# -- ARGV1: bar | |
# -- ------- | |
# -- Quoted parsing: print_args("foo bar") | |
# -- ARGC: 1 | |
# -- ARGV0: foo bar | |
# -- ------- | |
# -- Unquoted expansion: print_args(${var_with_spaces}) | |
# -- ARGC: 1 | |
# -- ARGV0: foo bar | |
# -- ------- | |
# -- Quoted expansion: print_args("${var_with_spaces}") | |
# -- ARGC: 1 | |
# -- ARGV0: foo bar | |
# -- ======================== | |
# -- listvar: "more;stuff" | |
# -- ------- | |
# -- Unquoted parsing: print_args(more;stuff) | |
# -- ARGC: 2 | |
# -- ARGV0: more | |
# -- ARGV1: stuff | |
# -- ------- | |
# -- Quoted parsing: print_args("more;stuff") | |
# -- ARGC: 1 | |
# -- ARGV0: more;stuff | |
# -- ------- | |
# -- Unquoted expansion: print_args(${listvar}) | |
# -- ARGC: 2 | |
# -- ARGV0: more | |
# -- ARGV1: stuff | |
# -- ------- | |
# -- Quoted expansion: print_args("${listvar}") | |
# -- ARGC: 1 | |
# -- ARGV0: more;stuff | |
# -- ======================== | |
# -- listvar2: "other;;trex;" | |
# -- ------- | |
# -- Unquoted parsing: print_args(other;;trex;) | |
# -- ARGC: 2 | |
# -- ARGV0: other | |
# -- ARGV1: trex | |
# -- ------- | |
# -- Quoted parsing: print_args("other;;trex;") | |
# -- ARGC: 1 | |
# -- ARGV0: other;;trex; | |
# -- ------- | |
# -- Unquoted expansion: print_args(${listvar2}) | |
# -- ARGC: 2 | |
# -- ARGV0: other | |
# -- ARGV1: trex | |
# -- ------- | |
# -- Quoted expansion: print_args("${listvar2}") | |
# -- ARGC: 1 | |
# -- ARGV0: other;;trex; | |
# -- ======================== | |
# -- escapedSemicolon: "all\;one arg;other arg" | |
# -- ------- | |
# -- Unquoted parsing: print_args(all\;one arg;other arg) | |
# -- ARGC: 4 | |
# -- ARGV0: all;one | |
# -- ARGV1: arg | |
# -- ARGV2: other | |
# -- ARGV3: arg | |
# -- ------- | |
# -- Quoted parsing: print_args("all\;one arg;other arg") | |
# -- ARGC: 1 | |
# -- ARGV0: all\;one arg;other arg | |
# -- ------- | |
# -- Unquoted expansion: print_args(${escapedSemicolon}) | |
# -- ARGC: 2 | |
# -- ARGV0: all;one arg | |
# -- ARGV1: other arg | |
# -- ------- | |
# -- Quoted expansion: print_args("${escapedSemicolon}") | |
# -- ARGC: 1 | |
# -- ARGV0: all\;one arg;other arg | |
function(print_args) | |
message(STATUS "ARGC: ${ARGC}") | |
set(i 0) | |
while("${i}" LESS "${ARGC}") | |
message(STATUS "ARGV${i}: ${ARGV${i}}") | |
math(EXPR i ${i}+1) | |
endwhile() | |
endfunction() | |
message(STATUS "========================") | |
set(empty_var "") | |
message(STATUS "empty_var: \"${empty_var}\"") | |
message(STATUS "-------") | |
message(STATUS "Unquoted parsing: print_args()") | |
print_args() | |
# 0 args: [] | |
message(STATUS "-------") | |
message(STATUS "Quoted parsing: print_args(\"\")") | |
print_args("") | |
# 1 arg: [""] | |
message(STATUS "-------") | |
message(STATUS "Unquoted expansion: print_args(\${empty_var})") | |
print_args(${empty_var}) | |
# 0 args: [] | |
message(STATUS "-------") | |
message(STATUS "Quoted expansion: print_args(\"\${empty_var}\")") | |
print_args("${empty_var}") | |
# 1 arg: [""] | |
message(STATUS "========================") | |
set(var_with_spaces "foo bar") | |
message(STATUS "var_with_spaces: \"${var_with_spaces}\"") | |
message(STATUS "-------") | |
message(STATUS "Unquoted parsing: print_args(foo bar)") | |
print_args(foo bar) | |
# 2 args: ["foo", "bar"] | |
message(STATUS "-------") | |
message(STATUS "Quoted parsing: print_args(\"foo bar\")") | |
print_args("foo bar") | |
# 1 arg: ["foo bar"] | |
message(STATUS "-------") | |
message(STATUS "Unquoted expansion: print_args(\${var_with_spaces})") | |
print_args(${var_with_spaces}) | |
# 1 arg: ["foo bar"] | |
message(STATUS "-------") | |
message(STATUS "Quoted expansion: print_args(\"\${var_with_spaces}\")") | |
print_args("${var_with_spaces}") | |
# 1 arg: ["foo bar"] | |
message(STATUS "========================") | |
set(listvar more stuff) | |
message(STATUS "listvar: \"${listvar}\"") | |
message(STATUS "-------") | |
message(STATUS "Unquoted parsing: print_args(more;stuff)") | |
print_args(more;stuff) | |
# 2 args: ["more", "stuff"] | |
message(STATUS "-------") | |
message(STATUS "Quoted parsing: print_args(\"more;stuff\")") | |
print_args("more;stuff") | |
# 1 arg: ["more;stuff"] | |
message(STATUS "-------") | |
message(STATUS "Unquoted expansion: print_args(\${listvar})") | |
print_args(${listvar}) | |
# 2 args: ["more", "stuff"] | |
message(STATUS "-------") | |
message(STATUS "Quoted expansion: print_args(\"\${listvar}\")") | |
print_args("${listvar}") | |
# 1 arg: ["more;stuff"] | |
message(STATUS "========================") | |
set(listvar2 "other;;trex;") | |
message(STATUS "listvar2: \"${listvar2}\"") | |
message(STATUS "-------") | |
message(STATUS "Unquoted parsing: print_args(other;;trex;)") | |
print_args(other;;trex;) | |
# 2 args: ["other", "trex"] | |
message(STATUS "-------") | |
message(STATUS "Quoted parsing: print_args(\"other;;trex;\")") | |
print_args("other;;trex;") | |
# 1 arg: ["other;;trex;] | |
message(STATUS "-------") | |
message(STATUS "Unquoted expansion: print_args(\${listvar2})") | |
print_args(${listvar2}) | |
# 2 args: ["other", "trex"] | |
message(STATUS "-------") | |
message(STATUS "Quoted expansion: print_args(\"\${listvar2}\")") | |
print_args("${listvar2}") | |
# 1 arg: ["other;trex"] | |
message(STATUS "========================") | |
set(escapedSemicolon "all\;one arg;other arg") | |
message(STATUS "escapedSemicolon: \"${escapedSemicolon}\"") | |
message(STATUS "-------") | |
message(STATUS "Unquoted parsing: print_args(all\;one arg;other arg)") | |
print_args(all\;one arg;other arg) | |
# 4 args: ["all;one", "arg", "other", "arg"] | |
message(STATUS "-------") | |
message(STATUS "Quoted parsing: print_args(\"all\;one arg;other arg\")") | |
print_args("all\;one arg;other arg") | |
# 1 arg: ["all\;one arg;other arg"] | |
message(STATUS "-------") | |
message(STATUS "Unquoted expansion: print_args(\${escapedSemicolon})") | |
print_args(${escapedSemicolon}) | |
# 2 args: ["all;one arg", "other arg"] | |
message(STATUS "-------") | |
message(STATUS "Quoted expansion: print_args(\"\${escapedSemicolon}\")") | |
print_args("${escapedSemicolon}") | |
# 1 arg: ["all\;one arg;other arg"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment