CMake学习笔记6.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CMake学习笔记6

cmake 学习笔记(六) 希望这是现阶段阻碍阅读shiboken和PySide源码的涉及cmake的最后一个障碍 ^ _^ 学习 cmake 的单元测试部分 ctest。 简单使用 最简单的使用ctest的方法,就是在 CMakeLists.txt 添加命令: enable_testing() 该命令需要在源码的根目录文件内。 从这一刻起,就可以在工程中添加add_test命令了 add_test(NAME name [CONFIGURATIONS [Debug|Release|...]] [WORKING_DIRECTORY dir] COMMAND command [arg1 [arg2 ...]]) name 指定一个名字 Debug|Release 控制那种配置下生效 dir 设置工作目录 command 如果是可执行程序目标,则会被cmake替换成生成的程序的全路径 后面的参数可以使用 $... 这种语法,比如 $TARGET_FILE:tgt 指代tgt这个目标的全名 ApiExtractor 继续以 ApiExtractor 为例学习ctest的使用 顶层的CMakeLists.txt文件的内容片段: option(BUILD_TESTS Build tests. TRUE) if (BUILD_TESTS) enable_testing() add_subdirectory(tests) endif() 创建选项,让用户控制是否启用单元测试。如果启用,则添加进 tests 子目录,我们看其CMakeLists.txt文件 首先是创建一个declare_test的宏 使用 qt4_automoc 进行moc处理 生成可执行文件 调用 add_test 加入测试 macro(declare_test testname) qt4_automoc(${testname}.cpp) add_executable(${testname} ${testname}.cpp) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${apiextractor_SOURCE_DIR}) target_link_libraries(${testname} ${QT_QTTEST_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} apiextractor) add_test(${testname} ${testname}) endmacro(declare_test testname) 后续就简单了,需要的配置文件直接使用configure_file 的 COPYONLY declare_test(testabstractmetaclass) declare_test(testabstractmetatype) declare_test(testaddfunction) declare_test(testarrayargument) declare_test(testcodeinjection) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/utf8code.txt ${CMAKE_CURRENT_BINARY_DIR}/utf8code.txt COPYONLY) declare_test(testcontainer) Qt单元测试 QTestLib 模块用起来还是很简单的,我们这儿稍微一下cmake和qmake的一点不同。 使用qmake时,我们只需要一个源文件,比如测试 QString 类时,写一个 testqstring.cpp 文件 #include QtTest/QtTest class TestQString: public QObject { Q_OBJECT private slots: void toUpper(); }; void TestQString::toUpper() { QString str = Hello; QCOMPARE(str.toUpper(), QString(HELLO)); } QTEST_MAIN(TestQString) #include testqstring.moc 然后pro文件内启用 testlib 模块,其他和普通Qt程序一样了。 使用 cmake 时,我们将其分成两个文件 //testqst

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档