2011-09-30 90 views
2

我想知道在構建具有自定義構建步驟的文件時是否有可能獲取項目包含目錄的列表。獲取包含自定義構建步驟的目錄

想象一下下面的情況:我的項目包括A.cppB.cppC.blah的。在字段「C/C++」 - >「常規」 - >「其他包含目錄」下的項目屬性中,我已指定了要用於A.cppB.cpp的包含目錄的列表。現在爲C.blah我確實指定了一個自定義構建工具並寫入「命令​​行」 - >「mytool.exe C.blah -I * Direcotries?* -o C.obj」。我現在如何獲得在這一步中爲C/C++指定的包含目錄列表?當我點擊「宏」時,沒有這樣的宏給我完整的包含列表。

有沒有人知道有可能實現這一目標?

回答

3

我想我找到了答案,但不完整。

人們可以在屬性表是這樣的規定:

<PropertyGroup> 
    <ProjectIncludeDir>@(ClCompile->'%(AdditionalIncludeDirectories)')</ProjectIncludeDir> 
</PropertyGroup> 

這將使現有的宏$(ProjectIncludeDir)到自定義生成含有過多的include目錄列表步驟。

這種方法的問題是字符串操作在宏上不再可能。例如,請考慮以下幾點:

<ProjectIncludeDirDot>$(ProjectIncludeDir.Replace(';',','))</ProjectIncludeDirDot> 

這導致了宏$(ProjectIncludeDirDot)在@(ClCompile - > '%(AdditionalIncludeDirectories)')。看來,轉換是在宏評估之後得到評估的,這會打破替代。如果有人知道更好的解決方案,請...

+0

這似乎有問題。它加入所有'ClCompile'項的所有值,這意味着重複相同的值。在這種情況下,它可能不是一個大問題,但總的來說它是不好的。 –

+0

這是一個很棒的解決方案!完美的作品。 – Boinst

相關問題