我需要编辑一个用于特定项目的boost构建所使用的.jam文件。关于布贾姆语言的官方手册上说:
所以很明显,用ECHO打印DEF_FILE是行不通的。如何将其展开为字符串变量或实际可以检查的内容?
我需要做的是打印一条错误消息,并在没有设置标志的情况下中止构建。我试过:
if ! $(DEF_FILE)
{
errors.user-error "file not found" ;
EXIT ;
}但是这个“如果”永远是真的
我还尝试将"if!$_DEF_FILE {.}“放入包含的”action“中,但显然它被忽略了。
发布于 2012-07-28 04:57:57
我不确定我是否理解你们面临的全球任务。但是,如果您想要添加对非空DEF_FILE的检查--扩展您引用的文档位,则需要在msvc.link函数中添加签入。
如果您有一个命令行模式(用‘actions’指定),那么它的内容就是传递给OS执行的内容。但是,您也可以具有相同名称的函数,该函数在生成操作之前将被调用。例如,下面是当前代码库的内容:
rule link.dll ( targets + : sources * : properties * )
{
DEPENDS $(<) : [ on $(<) return $(DEF_FILE) ] ;
if <embed-manifest>on in $(properties)
{
msvc.manifest.dll $(targets) : $(sources) : $(properties) ;
}
}您可以另外修改此代码以:
if ! [ on $(<) return $(DEF_FILE) ] {
ECHO "error" ;
}https://stackoverflow.com/questions/11674918
复制相似问题