表8. 模板文件关键字
关键字 | 描述 |
if | 用来决定某个变量是否被定义。非操作(!)可以用来反转结果。该结构只检查在mpc文件或mpt文件中出现的值定义,缺省值(即使是由项目创建器实现的)并不会被if语句考虑。 |
else | 同if语句一起使用,只有当if语句不为真的时候,else语句才会被执行。 |
endif | 同if语句一起使用,用来结束if或者if/else块。 |
noextension | 将变量值解释为文件名,并从变量中移除扩展名以及表示扩展名的点号。 |
dirname | 将变量值解释为文件名,并从变量中移除basename。 |
basename | 将变量值解释为文件名,并从变量中移除目录信息。 |
basenoextension | 作用类似basename,不过同时从变量中移除扩展名以及表示扩展名的点号。 |
foreach | 在空格分隔的列表环境中计算变量。 |
forfirst | 同foreach一起使用,传递给forfirst的文字值会被放置到foreach中第一个迭代中去。 |
fornotfirst | 同foreach一起使用,传递给fornotfirst的文字值会被放置到foreach中除第一个之外的每一个迭代中去。 |
forlast | 同foreach一起使用,传递给forlast的文字值会被放置到foreach中最后一个迭代中去。 |
fornotlast | 同foreach一起使用,传递给fornotlast的文字值会被放置到foreach中除最后一个之外的每一个迭代中去。 |
endfor | 同foreach一起使用,用来结束foreach块。 |
comment | 传递给comment的任何值都将被忽略(注释),可以使用任何除去换行和语句结束符之外的任何字符。 |
flag_overrides | 直接覆盖在mpc文件中的项目范围内的设置,使用两个由逗号分隔的变量,第一个变量对应一个文件名,第二个可以是任何变量。 |
marker | 同mpc语法中的verbatim关键字,可以用来在模板中指定占位符。如,<%marker(local)%>。 |
uc | 返回变量值的大写字母形式。 |
lc | 返回变量值的小写字母形式。 |
ucw | 返回变量值中每个单词首字母大写的形式,单词使用空格或者下划线来进行分隔。 |
normalize | 将连字号、斜杠、美元符号、括号以及点号转换为下划线。 |
reverse | 反转数组参数值的顺序。 |
sort | 对数组参数值进行排序。 |
uniq | 返回数组参数值的唯一集合。 |
multiple | 如果数组参数包含多个值,则返回真。 |
starts_with | 如果参数值(第一个参数)以给出的正则表达式(第二个参数)开始,则返回真。 |
ends_with | 如果参数值(第一个参数)以给出的正则表达式(第二个参数)结尾,则返回真。 |
contains | 如果参数值(第一个参数)匹配给出的正则表达式(第二个参数),则返回真。 |
表9. 可在模板文件中使用的特殊值
值 | 描述 |
custom_types | 包含自定义生成类型的列表。更多信息参见自定义类型。 |
cwd | 完整的当前工作目录。 |
forcount | 仅可与foreach一起使用,表示从1开始计数的foreach元素索引。 |
project_name | 包含了当前正在被处理的项目名称。 |
project_file | 包含了当前正在被处理的项目的输出文件名。 |
ciao | 在GNUACE项目创建器模块中实现,指定项目使用了CIAO。 |
cppdir | 在BMake项目创建器模块中实现,返回由分号分隔的Source_Files列表值。 |
rcdir | 在BMake项目创建器模块中实现,返回由分号分隔的Resource_Files列表值。 |
make_file_name | 在VC6和EM3项目创建器模块中实现,返回对应到该特定项目类型的由项目名称与make文件扩展组合在一起的文件名。 |
tao | 在GNUACE项目创建器模块中实现,指定项目使用了TAO。 |
guid | 在VC7项目创建器模块中实现,返回一个在VC7项目文件中使用的基于项目的guid值。 |
vcversion | 在VC7项目创建器模块中实现,返回被创建项目类型的版本号:vc7返回7.00,vc71返回7.10,vc8返回8.00。 |
vpath | 在GNUACE项目创建器模块中实现,返回源文件相对于在GNU Make中的VPATH设置的路径值。 |
表10. 自定义类型字段
表11. 群组文件字段名