我有一个 scons 项目,强制包含多个头文件作为编译器标志。
# Forced include files passed directly to the compiler
env.Append(CCFLAGS = ['/FIinclude.h'])
Run Code Online (Sandbox Code Playgroud)
这些文件不包含在项目中的任何文件中。我需要为它们添加显式依赖项。
forced_include_headers = ['include.h']
# Trying to add an explicit dependency for each build target
for object in BUILD_TARGETS:
env.Depends(object, forced_include_headers)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是BUILD_TARGETS列表是空的。它似乎只包含从COMMAND_LINE_TARGETSor传递的东西DEFAULT_TARGETS。我们项目中的所有目标都是隐式构建的。我们不使用env.Default等。有没有办法获取隐式目标列表,或者我是否必须手动构建它?我注意到它TARGETS是保留的,似乎也不包含我想要的内容。
我可以env.Depends(target, forced_include_headers)为所有目标在各自的 SConscript 文件中添加一个 ,但该项目相当大。