c – 是否有任何软件可以在文件更改时重新编译基于CMake的软件项目?

我正在开发一个使用
CMake作为其构建系统的C软件项目.该软件基于Mac OS / X,Linux和Windows构建.

为了改善我通常的黑客/编译/测试周期,我想知道是否有一些类似守护进程的软件知道CMake项目考虑的所有源文件.每当修改任何源文件时,守护程序都会注意到这一点并重建受影响的目标.我的想法是,我的周期中的“编译”步骤将变得更快,因为它可以立即返回说“没有什么可做的,因为你的友好的neighborhoud构建守护进程已经重建了所有文件.”.

有人知道可以这样做的现有软件吗?如果不是 – 以某种方式可以导出CMake考虑的源文件列表,这样我就可以自己编写一个小守护进程来监视这些文件,并自动重新运行make(或任何适合所选生成器的东西)吗?在最好的情况下,我也会得到依赖树,以便我可以一遍又一遍地跳过检查所有依赖项,然后只更新我需要的目标.

最佳答案 我已经使用
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任务应该很好地自动化.

点赞