Boost 推进,重建
当我重建我的应用程序时,先前构建的可执行文件不会被删除,如果出现编译错误,我的脚本将继续执行并执行可执行文件,而该文件实际上没有更新。如何在构建过程发生之前删除可执行文件?我希望在编译操作中执行此操作:Boost 推进,重建,boost,boost-build,Boost,Boost Build,当我重建我的应用程序时,先前构建的可执行文件不会被删除,如果出现编译错误,我的脚本将继续执行并执行可执行文件,而该文件实际上没有更新。如何在构建过程发生之前删除可执行文件?我希望在编译操作中执行此操作: exe myapp : #here I want to remove the executable file sources libraries ; 不确定是否有更简单的方法,但这会起作用: # cleanexe.jam import project ; im
exe myapp :
#here I want to remove the executable file
sources
libraries
;
不确定是否有更简单的方法,但这会起作用:
# cleanexe.jam
import project ;
import targets ;
import generators ;
import type ;
type.register CLEAN_EXE : clean-exe ;
rule clean-exe ( source : requirements * : target-name ? )
{
target-name ?= $(source:D=:S=).cleanexe ;
return [ targets.create-typed-target CLEAN_EXE : [ project.current ] : $(target-name) : $(source) : $(requirements) ] ;
}
generators.register-standard cleanexe.clean-on-failure : EXE : CLEAN_EXE ;
rule clean-on-failure ( target : source : requirements * )
{
RMOLD $(source) ;
}
然后在jamfile中,您可以执行以下操作:
# jamfile
exe myapp :
sources
libraries
;
import cleanexe : clean-exe ;
clean-exe myapp ;
可选地,您可以考虑检查B2(BJAM)退出代码,如果失败,跳过脚本的其余部分。
< P>不确定是否有更简单的方法,但这将起作用:# cleanexe.jam
import project ;
import targets ;
import generators ;
import type ;
type.register CLEAN_EXE : clean-exe ;
rule clean-exe ( source : requirements * : target-name ? )
{
target-name ?= $(source:D=:S=).cleanexe ;
return [ targets.create-typed-target CLEAN_EXE : [ project.current ] : $(target-name) : $(source) : $(requirements) ] ;
}
generators.register-standard cleanexe.clean-on-failure : EXE : CLEAN_EXE ;
rule clean-on-failure ( target : source : requirements * )
{
RMOLD $(source) ;
}
然后在jamfile中,您可以执行以下操作:
# jamfile
exe myapp :
sources
libraries
;
import cleanexe : clean-exe ;
clean-exe myapp ;
P>可选的,您可以考虑检查B2的(BJAM)退出代码,如果失败,则跳过脚本的其余部分。