3
我有一個scons項目,強制包含幾個頭文件作爲編譯器標誌。SCONS中所有構建目標的隱式列表?
# Forced include files passed directly to the compiler
env.Append(CCFLAGS = ['/FIinclude.h'])
這些文件不包含在項目中的任何文件中。我需要爲它們添加一個明確的依賴關係。
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)
我遇到的問題是BUILD_TARGETS
列表爲空。它似乎只包含從COMMAND_LINE_TARGETS
或DEFAULT_TARGETS
傳遞的東西。我們項目中的所有目標都是隱式構建的。我們不使用env.Default
等。有沒有辦法獲得隱式目標列表,還是我必須手動構建它?我注意到TARGETS
被保留,似乎並不包含我想要的。
我可以爲其各自的SConscript文件中的所有目標添加env.Depends(target, forced_include_headers)
,但該項目非常大。
我最終通過爲項目中的每個目標調用僞造器來解決這個問題(無論如何都需要這樣做)。依賴關係會添加到僞造者的調用中。 – 2011-06-16 21:40:22