CMake 简明教程(4)---添加系统检测

原文网址:http://cmake.org/cmake/help/cmake_tutorial.html

教程中所有的代码都可以在这里找到:http://public.kitware.com/cgi-bin/viewcvs.cgi/CMake/Tests/Tutorial/




这一节,让我们考虑这种情况,我们的工程使用了一些目标平台不支持的代码。下面的例子中我们会添加一些代码,这些代码与目标平台是否有log和exp函数有关。当然,几乎每个平台都包含这些函数,但在这个例子中,我们假设它不存在。如果某个平台中有log函数,我们会直接使用平台函数。我们首先在CMakeLists.txt开头使用CheckFunctionExits.cmake宏测试这些函数是否可用,代码如下:

# does this system provide the log and exp functions?
include (CheckFunctionExists.cmake)
check_function_exists (log HAVE_LOG)
check_function_exists (exp HAVE_EXP)

接下来,如果平台上存在这些bovi,我们会如下修改TutorialConfig.h.in来定义这些变量:

// does the platform provide exp and log functions?
#cmakedefine HAVE_LOG
#cmakedefine HAVE_EXP

切记在对TutorialConfig.h文件使用cofigure_file函数之前检测log和exp非常必要。configure_file函数按cmake当前配置会间接配置了文件。最后,在mysqrt 函数中,如果在当前系统上log和exp可用,我们提供一个基于log和exp可选的实现。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值