2011-02-07 40 views
4

我正在開發一個使用CMake作爲構建系統的C++軟件項目。該軟件建立在Mac OS/X,Linux和Windows上。是否有任何軟件用於重新編譯基於CMake的軟件項目文件更改?

爲了改善我通常的黑客/編譯/測試周期,我想知道是否有一些守護進程的軟件可以知道CMake項目考慮的所有源文件。每當任何源文件被修改時,守護進程都會注意到這一點並重建受影響的目標。我的想法是,我的循環中的「編譯」步驟將變得更快,因爲它可以立即返回,因爲你的友好的鄰居構建的守護進程已經重建了所有文件,因此無法執行任何操作。

有誰知道現有的軟件可以這樣做嗎?如果沒有 - 是否可以導出CMake考慮的源文件列表,這樣我就可以自己編寫一個小守護程序來監視這些文件,並自動重新運行make(或適用於所選生成器的任何東西)?在最好的情況下,我還會得到依賴關係樹,這樣我就可以跳過檢查所有依賴關係並更新我需要的目標。

回答

2

我用JNotify成功監控文件更改沒有太多麻煩。

它適用於您提到的所有操作系統,文件更改檢測幾乎是瞬間的。它可以檢測文件的創建,刪除,修改等。

一個很好的代碼示例可以找到here

你可以做這樣的事情:

class CMakeListener implements JNotifyListener { 
    public void fileModified(int wd, String rootPath, String name) { 
     // if a file is a cpp or hpp file, execute CMake 
    } 
} 

和你的CMake任務應該很好地自動化。

+0

謝謝,這很有趣。但是,我需要首先找出要修改的文件 - 是否有一些方法可以讓CMake打印這個列表? – 2011-02-07 15:34:20

相關問題