CMake 简明教程(3)---安装及测试
来源:互联网 发布:哪个电视直播软件清晰 编辑:程序博客网 时间:2024/05/16 16:01
教程中所有的代码都可以在这里找到:http://public.kitware.com/cgi-bin/viewcvs.cgi/CMake/Tests/Tutorial/
这一节中,我们会为项目添加安装和测试规则。安装规则(install rule)可直接添加,对于linux和mac用记来讲,install太常用了,因为类Unix系统的库支持方面做得确实比windows好。windows用户可能不大熟悉,其实也简单,就是把编译好的文件进行一些处理(比如mac上需要使用otool修改库文件使用的支持库的路径,默认都是绝对路径)后复制到用户指定的位置。要安装MathFunctions库,需要在MathFunctions的CMakeLists.txt中添加如下两行:
install (TARGETS MathFunctions DESTINATION bin)install (FILES MathFunctions.h DESTINATION include)
而对于这个项目,需要添加如下几行来告诉cmake如何install可执行文件及配置头文件:
# add the install targetsinstall (TARGETS Tutorial DESTINATION bin)install (FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h" DESTINATION include)
这是install相关的所有内容了。这时你能够编译这个项目的代码,然后输入”make install”(或者在IDE编译INSTALL项目),之后相应的头文件,库,可执行文件都会被按规则install到需要的位置。cmake有一个变量CMAKE_INSTALL_PREFIX就是用来指定install目录的。
添加测试的过程也是很直接的。在顶层的CMakeLists.txt文件末尾添加一些基本的测试来确实项目是正常运行的。
# does the application runadd_test (TutorialRuns Tutorial 25) # does it sqrt of 25add_test (TutorialComp25 Tutorial 25) set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5") # does it handle negative numbersadd_test (TutorialNegative Tutorial -25)set_tests_properties (TutorialNegative PROPERTIES PASS_REGULAR_EXPRESSION "-25 is 0") # does it handle small numbersadd_test (TutorialSmall Tutorial 0.0001)set_tests_properties (TutorialSmall PROPERTIES PASS_REGULAR_EXPRESSION "0.0001 is 0.01") # does the usage message work?add_test (TutorialUsage Tutorial)set_tests_properties (TutorialUsage PROPERTIES PASS_REGULAR_EXPRESSION "Usage:.*number")
第一个测试用例只是简单地确定项目可正常运行,没有出现异常退出的情况,且最后返回一个0。这是一个CTest的基本形式。接下来的几个测试使用了PASS_REGULAR_EXPRESSION属性来检测输出结果为指定字符串。在这段代码示例中,正常情况下会输出字符串,输入数据有问题时倒输出使用说明。如果你想要添加很多测试的话,最好写一个函数,例如:
#define a macro to simplify adding tests, then use itmacro (do_test arg result) add_test (TutorialComp${arg} Tutorial ${arg}) set_tests_properties (TutorialComp${arg} PROPERTIES PASS_REGULAR_EXPRESSION ${result})endmacro (do_test) # do a bunch of result based testsdo_test (25 "25 is 5")do_test (-25 "-25 is 0")
- CMake 简明教程(3)---安装及测试
- CMake 简明教程(6)---生成安装文件
- ANT安装与测试和简明教程
- CMake 简明教程(1)---第一个例子
- CMake 简明教程(2)---编译库文件
- CMake 简明教程(4)---添加系统检测
- CMake教程及例子
- CMake安装教程
- 安装系统简明教程(windows)
- Jekyll简明教程(一)安装
- PHPMYADMIN简明安装教程
- PHPMYADMIN简明安装教程
- phpMyAdmin简明安装教程
- PHPMYADMIN简明安装教程
- phpMyAdmin简明安装教程
- Tomcat 安装简明教程
- phpmyadmin简明安装教程
- Tomcat 安装简明教程
- Ubuntu11.10搭建arm-linux-gcc-4.6.1交叉编译环境 .
- iOS中数组遍历的方法及比较
- 寻找最大的K个数
- 百度Android语音识别SDK语义理解与解析方法
- AIX 操作系统查看文件夹及文件大小的命令
- CMake 简明教程(3)---安装及测试
- OJ系统读入数据流的方法总结C++
- TLB
- C# Nullable的类型转换问题
- nginx反向代理与nat123转发代理的区别和二者安装使用方法和优化配置
- JS HOOK
- AlertDialog的onCreateDialog与onPrepareDialog使用方法
- C语言 问号表达式记忆 表达式1?表达式2:表达式3
- 解决warning 1 line adds whitespace errors.