CMake Tutorial(4)——Adding System Introspection
来源:互联网 发布:linux ftp连接数 编辑:程序博客网 时间:2024/05/16 08:51
接下来,我们来考虑向工程中加入一些代码,取决于目标平台可能没有提供的功能。我们接着以前的例子,现在我们来添加一些代码用于判断目标平台是否提供了log()和exp()这两个函数。当然绝大多数的平台都提供了这两个函数,在这里只是为了演示如何来判断目标平台是否有我所需要的函数。如果目标平台有log()函数,我们就在mysqrt函数中调用它计算平方根。现在我们在工程顶层目录的CMakeLists.txt文件中使用CheckFunctionExists.cmake宏来检查所需函数的可用性。内容如下:
# does this system provide the log and exp functions?include (CheckFunctionExists)check_function_exists (log HAVE_LOG)check_function_exists (exp HAVE_EXP)
接着我们需要修改TutorialConfig.h.in文件,在该文件中定义HAVE_LOG和HAVE_EXP如果CMake在目标平台找到了它们:
#cmakedefine HAVE_LOG#cmakedefine HAVE_EXP
需要注意的是,在文件CMakeLists.txt中用于CheckFunctionExists.cmake宏的使用需要在configure命令的前面。因为configure会立即使用当前的配置去设置TutorialConfig.h文件。最后我们在mysqrt函数中添加一下内容去计算平方根,如果exp()和log()函数可用的话:
#if defined (HAVE_LOG) && defined (HAVE_EXP) result = exp(log(x) * 0.5);#else ...#endif
0 0
- CMake Tutorial(4)——Adding System Introspection
- CMake Tutorial(2)——Adding a Library
- CMake Tutorial(7)——Adding Support for a Dashboard
- CMake Tutorial(5)——Adding a Generated File and Generator
- CMake Tutorial (1)——A Basic Starting Point
- CMake Tutorial(3)——Installing and Testing
- CMake Tutorial(6)——Building an Installer
- CMake Tutorial
- CMake Tutorial
- CMake Tutorial
- cmake tutorial
- Introspection
- Objective-C学习笔记——内省(Introspection)
- Adding A System Call(转)
- MITK Tutorial--Step10: Adding New Interaction
- C++ Qt Game Tutorial 5 - Adding Enemies
- cmake使用一 —— cmake语法
- cmake使用一 —— cmake语法
- 【原创】sublime text 快捷键
- git部署与git常见问题解决
- 【原创】python 装饰器
- 【原创】gitlab私服:No user&…
- 【原创】ssh 反向代理 …
- CMake Tutorial(4)——Adding System Introspection
- 【原创】utf8 语言编码(表)区间
- 【原创】python 实体类 …
- 【原创】python multiprocess…
- 【原创】python urllib2/http…
- 【原创】suhu 视频
- 【原创】 windows 下安…
- jsoup Cookbook——处理URLs
- 【原创】screen 用法