wangjunchao 发表于 2011-5-16 23:09:27

OSG源码中CMakeLists文件分析

我所使用的OSG是SVN管理的版本。
接下来就来分析一下整个Cmake的执行过程。
1、        设置Cmake的一些属性,具体有兴趣的读者可以自行学习。
2、        判断平台。当然这里姑且认为是Win32平台。那么接下来判断Cmake的版本,2.4.6是最小的需求的Cmake版本。
3、        设置Cmake的策略。
4、        接下来进入工程OpenSceneGraph
5、        设定版本号2.9.15
6、        将plugin后面加上版本号,这就是我们看到的生成的那个plugin+版本号文件夹
7、        如果是cygwin那么plugin前缀加上cygwin_
8、        如果是mingw那么plugin前缀加上mingw_
9、        将OpenThreads_SOURCE_DIR设定为OpenSceneGraph_SOURCE_DIR,OpenSceneGraph_SOURCE_DIR即为我们在Cmake输入的源码路径。
10、        设定CMAKE_MODULE_PATH为源码主目录下的CMakeModules文件夹。
11、        是否使用AndroidNDK,这里略去这部分的分析。
12、        接下来是OSG的一些修补工作
13、        是否在SVN下编译,略过
14、        判断Apple平台下
15、        判断Unix系统下
16、        将INCLUDE_DIRECTORIES设定为主目录下的include文件夹
17、        如果要编译的include与当前include不在同一目录下,那么使用要生成的目录下的include
18、        Win32平台下
19、        开启vs2005或更高编译器的MP选项
20、        将MP选项设为高级,这也就是为什么我们configure完之后在simpleview中不能看到这一选项而在Advancedview中可以看到这一选项的原因。
21、        开启DYNAMICBASE,主要修补win7下的一个bug
22、        其他的MSVC一些项目属性设置选项
23、        设定socket
24、        接下来时MSVC独有的关于项目属性的设置,略去
25、        Luigi编译使用相关配置
26、        OSG的debug信息等级是否设定
27、        是否使用float矩阵,该项设置作为高级设置,在Advanced View中可以看出
28、        是否使用float数组,高级设置
29、        是否使用float天空盒,高级设置
30、        是否使用UTF-8来作为文件名的编码格式
31、        MSVC的Warning是否省去,高级设置
32、        是否进行ref_ptr<> T* operator()转化
33、        OpenGL和OpenGLES的设定
34、        是否关闭使用了C++中的异常处理的CPP文件
35、        设置OSG文件夹的配置文件
36、        设置Version的配置文件
37、        指示安装位置安装在include/osg下的配置文件夹下
38、        设置MSVC和OSG相关的版本信息,后缀名是rc
39、        可选编译部分
40、        是否编译OSG 的Applications,可能由于每个版本的OSG的Application的版本相差不多吧
41、        是否编译OSG的相关例子,即大家熟悉的Example文件夹
42、        第三方工具的设置
43、        是否指定QT版本
44、        接下来寻找第三方库的相关配置在这里略去
45、        如需要创建bin和lib文件夹
46、        设置debug版还是release版
47、        在其他平台上设置debug信息
48、

array 发表于 2011-5-17 08:37:04

感谢您的贡献,我个人的建议是这个教程可以结合实际的cmake代码来呈现,否则读起来会有些困难,比如:
23、      设定socket这样的描述大家都难免有些糊涂~~呵呵,期待能够完善这篇具有一定实用性的教程

wangjunchao 发表于 2011-5-17 22:19:12

呵呵,关于这个文档接下来会有更加详细的分析说明。
对了,你之前的cmake的资料写完了??

array 发表于 2011-5-18 14:23:55

我没有专门写什么cmake的资料,目前也没有时间去写

wangjunchao 发表于 2011-5-18 19:04:54

我记得你之前写过这方面的资料,呵呵,后来好像没有继续下去了
页: [1]
查看完整版本: OSG源码中CMakeLists文件分析