一直在烦些乱七八糟的事情,继续研究一下。
今天的目的是在obs的项目框架下建一个自定义的qt项目helloworld。
obs工程整个是个cmake的框架,去了解了一番cmake,官网有很详细的文档
https://cmake.org/cmake/help/v3.13/manual/cmake-commands.7.html。
这里建议装vscode后再装个cmake插件来编辑cmake文件。
obs的cmake框架初体验
obs除了各个项目的cmake文件外,在cmake子目录下有很多模块跟cmake用到的工具类。
主cmake文件include了这些模块
这些文件基本都在modules文件夹下,其中obshelpers是比较重要的一个文件,里面提供全局变量,还有一些安装调试的函数。
通过这个主cmake文件,添加obs各个模块子目录后就能组织起整个obs工程了。
cmake中的qt支持
上一个文章中分析过obs中qt自动生成中间文件的原理,了解cmake后,才知道那些“自定义生成工具”其实不是手打的。原来cmake也有一套像vs的qt插件一样的东西,可以生成这些“自定义生成工具”命令,从而协助生成像ui_OBSBasic.h这种中间文件。
这两个概念叫AUTOUIC 和 AUTORCC,详细看以下:
https://cmake.org/cmake/help/v3.13/manual/cmake-qt.7.html?highlight=qt#manual:cmake-qt(7)
参照obs里面的使用,具体是用到下面这些命令
- 将qt目录加入CMAKE_PREFIX_PATH
- 设置支持moc
set(CMAKE_AUTOMOC TRUE)