aboutsummaryrefslogtreecommitdiff
path: root/build2/b.cli
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-07-23 16:09:49 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-07-25 08:05:43 +0200
commitad7d4bd0722aa70ba634900cebf93a1b1814fed9 (patch)
treefbfa28c4602dea0be178e63d1e6a1b2667e85190 /build2/b.cli
parenta8bef4ff20100c518816c641ae1ff9783306c167 (diff)
Only do "effective escaping" (['"\$(]) on the command line
This will make things more convenient on Windows provided we use "sane" paths (no spaces, no (), etc).
Diffstat (limited to 'build2/b.cli')
-rw-r--r--build2/b.cli15
1 files changed, 15 insertions, 0 deletions
diff --git a/build2/b.cli b/build2/b.cli
index 013a756..f0cd48e 100644
--- a/build2/b.cli
+++ b/build2/b.cli
@@ -178,6 +178,21 @@ namespace build2
config.install.root=/usr/local config.install.root.sudo=sudo \
configure
\
+
+ Note also that buildspec and command line variable values are treated as
+ \cb{buildfile} fragments and so can use quoting and escaping as well as
+ contain variable expansions and evaluation contexts. However, to be more
+ usable on various platforms, escaping in these two situations is limited
+ to the \i{effective sequences} of \cb{\\'}, \cb{\\\"}, \cb{\\\\},
+ \cb{\\$}, and \cb{\\(} with all other sequences interpreted as is.
+ Together with double-quoting this is sufficient to represent any value.
+ For example:
+
+ \
+ b config.install.root=c:\projects\install
+ b \"config.install.root='c:\Program Files (x86)\test\'\"
+ b 'config.cxx.poptions=-DFOO_STR=\"foo\"'
+ \
"
}