在我的公司,我們有一個大型的C++項目,可以使用各種預處理器定義來啓用或禁用多個功能。預處理器定義 - 提示構建?
如果我們列舉每個可能的預處理/特徵組合的項目配置列表,我們就會有自己一個相當廣泛的名單(更不用說長期配置的名字)!
是否有插件或其他未知功能可以在用戶啓動構建時顯示提示,以便用戶可以選中/取消選中可配置功能的列表以啓用或禁用預處理器定義?
像這樣的事情將是真棒:
在我的公司,我們有一個大型的C++項目,可以使用各種預處理器定義來啓用或禁用多個功能。預處理器定義 - 提示構建?
如果我們列舉每個可能的預處理/特徵組合的項目配置列表,我們就會有自己一個相當廣泛的名單(更不用說長期配置的名字)!
是否有插件或其他未知功能可以在用戶啓動構建時顯示提示,以便用戶可以選中/取消選中可配置功能的列表以啓用或禁用預處理器定義?
像這樣的事情將是真棒:
你可以創建一個簡單的應用程序,它會產生與定義
#ifndef __GEN_CONFIG__
#define __GEN_CONFIG__
#undef LOGGING
#define LOGGING 1 // for example
#undef FEATURE_A
#define FEATURE_A 0
#endif
一個頭文件,則該頭可以被包含在項目。
應用/對話可以作爲一個Visual Studio Pre-Build event被執行,以確保該頭文件編譯前右更新。
http://www.dotnetperls.com/post-pre-build-macros – 2012-08-03 14:18:27
http://visualstudiohacks.com/general/customize-your-project-build-process/ – 2012-08-03 14:18:54
我熟悉前期和後期工作,構建事件,但我不確定是否可以使用它們來修改預處理器定義。 如果您可以在預構建步驟中修改預處理器定義,那麼手動顯示Windows窗體提示並將結果傳輸到預構建步驟可能會非常困難。但說實話,我的問題實際上更多地是爲了找到一個可能已經存在的可配置插件,以避免所有這些額外的黑客入侵。 – BTownTKD 2012-08-03 14:25:44
我喜歡用CMake的正是這種任務。在CMakeLists.txt
中,您可以使用命令set(<variable> <value> CACHE <type> <docstring>)
,該命令創建一個變量並將其放入具有給定文檔字符串的CMake緩存中。然後,您可以使用諸如ccmake
之類的工具編輯這些值。如果您將值設置爲布爾值,則可以打開或關閉功能。
在Windows上,您可以查看並與gui,它類似於您曾經參與過這個問題對話框編輯緩存條目。
編輯:當您創建構建時,CMake不會彈出一個彈出窗口。相反,它會記住緩存中的變量。通常的方法是讓不同的版本具有不同的功能,例如,您可以在調試模式下創建一個具有所有功能的版本,另一個版本只具有最小功能設置等。
您可以檢查出我的分析工具,它是建立在項目中使用的所有預處理器的密鑰列表。 http://cdsan.com/Samp_CondParams.php
除了建立的名單本身它使那些PARAMS的分類。
這對於Nightly Build來說是很討厭的。哪個開發人員要遲到? – MSalters 2012-08-03 14:31:29
這是一個有效的點;它可能只有在項目配置設置爲「自定義」或類似的情況下才會顯示。 – BTownTKD 2012-08-03 14:47:29