CTK创建一个工程

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:19   914   0
这个教程将向你展示如何建立你自己的工程通过使用CMake创建系统并且如何集成它到CTK插件框架。
所描述的设置将允许任意数量的应用和CTK插件包含在一个工程中。
Project Layout
一个可能的工程布局展示在图1.它包含一个application和一个plu-in。应用代码和不同的插件在不同的教程里被介绍。我们只覆盖三个CMakeLists.txt文件。
Top-Level CMake File
顶级的CMakeLists.txt文件负责查找CTK和Qt4。你可以添加任何你想要的CMake命令,对CTK插件集成唯一需要的是CTK的可用性和Qt4.你可以看一眼例子通过点击CMakeLists.txt连接。我们将谈论这个文件两个重要的细节。
https://github.com/saschazelzer/CTKPluginTutorials/raw/master/CMakeLists.txt。
为了使用CTK的精致的依赖检查系统的优势在你自己创建的系统中,你需要写一个小的称作GetMyTargetLibraries的CMake宏。它被用来在CTK中回调,CMake宏和函数用来区分在你的工程中创建的目标和在你工程之外的目标。它通过得到一个目标明列表和使用正则表达式过滤出属于你工程的名字。你想在_tmp_list和OUTPUT_VARIABLE之间调用ctkMacroListFilter,你可以使用尽量多的正则表达式。
第二个重要的部分是一个特殊的CMake宏的调用来自CTK。
https://github.com/saschazelzer/CTKPluginTutorials/raw/master/CMakeLists.txt
我们首先创建一个列表包含Plugins目录下每个plug-in的条目。每一个条目组成目录名包含plug-in通过一个":"并且默认创建一个可选值。这个列表被传递给ctkFunctionSetupPligins函数执行下面的步骤:
创建一个CMake选项为每一个plug-in.你可以自定义选项名使用一个"BUILD_OPTION_PREFIXMyPrefix"前缀作为传递给函数的最后一个参数。
形成一个你的插件依赖图形和外部依赖。
验证可用插件的依赖。如果你自己插件中的一个依赖你工程中的其他插件,它们将自动可以被使用。不满足的外部以来将导致CMake配置错误。
添加一个可用插件的子目录。
这就完成了在你的CMake构建系统中集成你的CTK插件。
应用程序集成
CMakeLists.txt文件中的Apps目录不需要使用任何CTK指定的CMake代码。在描述的创建中它只是添加了一个选项为我们的CTKUsePlugin应用并且增加了CMake的解析目录。
这有一个例子为了我们的需要调用CTK插件框架方法的CTKUsePlugin应用程序的CMake文件。
https://github.com/saschazelzer/CTKPluginTutorials/raw/master/Apps/UseCTKPlugin/CMakeLists.txt
标准的CMake代码,增加CTK include目录并且连接应用程序到CTK插件框架CTKPluginFramework。
Plugin CMake File
外部插件到CTK被使用跟CTK工程内部插件一样的方法创建。一个CMakeLists.txt的例子为了一个名字为org.mydomain.serviceeventlistener的插件展示在下面。
https://github.com/saschazelzer/CTKPluginTutorials/raw/master/Plugins/org.mydomain.serviceeventlistener/CMakeLists.txt
PROJECT命令行设置你插件的子项目名。另外这个名字被用来作为共享库的目标明并且应该是全局唯一的。一个好的约定是使用反向域名方案为工程名。
调用ctkMacroBuildPlugin 宏将设置包括路径和库依赖关系。插件依赖关系的定义和这个宏的用法在创建一个新的CTK插件教程中。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP