diff options
Diffstat (limited to 'doc/manual.cli')
-rw-r--r-- | doc/manual.cli | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/doc/manual.cli b/doc/manual.cli index 02d1638..d40521b 100644 --- a/doc/manual.cli +++ b/doc/manual.cli @@ -16,7 +16,7 @@ This is the preface. -\h1#name-pattern|Name Pattern| +\h1#name-patterns|Name Patterns| For convenience, in certain contexts, names can be generated with shell-like wildcard patterns. A name is a \i{name pattern} if its value contains one or @@ -87,6 +87,20 @@ to find other, non-generated source files: exe{hello}: {hxx cxx}{* -options} {hxx cxx}{options} \ +If the name pattern includes an absolute directory, then the pattern match is +performed in that directory and the generated names include absolute +directories as well. Otherwise, the pattern match is performed in the +\i{pattern base} directory. In buildfiles this is \c{src_base} while on the +command line \- the current working directory (@@ TODO: spec for testscript, +other contexts). In this case the generated names are relative to the base +directory. For example, assuming we have the \c{foo.cxx} and \c{b/bar.cxx} +source files: + +\ +exe{hello}: $src_base/cxx{**} # $src_base/cxx{foo} $src_base/b/cxx{bar} +exe{hello}: cxx{**} # cxx{foo} b/cxx{bar} +\ + Pattern matching as well as inclusion/exclusion logic is target type-specific. If the name pattern does not contain a type, then the \c{dir{\}} type is assumed if the pattern ends with a directory separator and @@ -117,27 +131,13 @@ cxx{*}: extension = cxx And the following in our \c{buildfile}: \ -exe{hello}: {cxx}{* -foo -bar.cpp} +exe{hello}: {cxx}{* -foo -bar.cxx} \ The pattern match will first search for all the files matching the \c{*.cxx} pattern in \c{src_base} and then exclude \c{foo.cxx} and \c{bar.cpp} from the result. -If the name pattern includes an absolute directory, then the pattern match is -performed in that directory and the generated names include absolute -directories as well. Otherwise, the pattern match is performed in the -\i{pattern base} directory. In buildfiles this is \c{src_base} while on the -command line \- the current working directory (@@ TODO: spec for testscript, -other contexts). In this case the generated names are relative to the base -directory. For example, assuming we have the \c{foo.cxx} and \c{b/bar.cxx} -source files: - -\ -exe{hello}: $src_base/cxx{**} # $src_base/cxx{foo} $src_base/b/cxx{bar} -exe{hello}: cxx{**} # cxx{foo} b/cxx{bar} -\ - If the name generation cannot be performed because the base directory is unknown, target type is unknown, or the target type is not directory or file-based, then the name pattern is returned as is (that is, as an ordinary |