CMake - 使用教程

CMake - 使用教程

    • 一个基本的出发点 (Step1)
      • 添加一个版本号并配置头文件
    • 添加一个库 (Step 2)
    • 安装与测试 (Step 3)
    • 添加系统自检 (Step 4)
    • 添加生成文件和生成器 (Step 5)
    • 构建安装程序 (Step 6)
    • 添加对仪表板的支持 (Step 7)

这份渐进式的教程 [原文链接]涵盖了 CMake 帮助处理的一些常见的构建问题。许多议题已经在 《Mastering CMake》中作为独立的话题介绍过,但是了解它们是如何在示例项目中结合在一起的将非常有帮助。你可以在 CMake 源码中的 Tests/Tutorial 文件夹找到这份教程,每一步的内容都放置在各自的子文件夹中。

一个基本的出发点 (Step1)


最简单的项目是从源代码文件中构建一个可执行文件,CMakeLists.txt 文件仅需要两行,这将作为我们教程的起点,内容如下:

cmake_minimum_required (VERSION 2.6)
project (Tutorial)
add_executable(Tutorial tutorial.cxx)

1、写完cmakelist.txt文件之后,使用:cmake ,可以直接生成工程文件或makefile文件。
2、在 windows 下面需要选择生成器,否则可能生成的是VS工程:
   cmake -G “Unix Makefile”
3、使用 cmake -G 可以查看当前平台支持哪些生成器。

文件中的命令支持大写、小写或者混合使用,这个例子中的命令使用小写。tutorial.cxx 用于计算一个数的平方根,源码的第一版非常简单:

// 计算一个数的平方根
#include 
#include 
#include 
int main (int argc, char *argv[])
{
   
  if (argc < 2)
    {
   
    fprintf(stdout,"Usage: %s number\n",argv[0]);
    return 1;
    }
  double inputValue = atof(argv[1]);
  double outputValue = sqrt(inputValue);
  fprintf(stdout,"The square root of %g is %g\n",
          inputValue, outputValue);
  return 0;
}

添加一个版本号并配置头文件

你可以直接在源代码中添加版本号,但在 CMakeLists.txt 文件中提供版本号将会更加灵活,我们将文件修改如下:

cmake_minimum_required (VERSION 2.6)
project (Tutorial)
# 版本号 1.0
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)

# 配置一个头文件将一些 CMake 设置传入到源代码中
# 以 TutorialConfig.h.in 为模版,替换相关变量
# 以生成 TutorialConfig.h
configure_file (
  "${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"
  "${PROJECT_BINARY_DIR}/TutorialConfig.h"
  )

# 将构建目录添加到 include 的搜索路径中以便找到
# TutorialConfig.h 文件
include_directories("${PROJECT_BINARY_DIR}")

# 添加可执行文件
add_executable(Tutorial tutorial.cxx)

因为配置文件将会写入到构建目录中,所以我们将这个目录添加到包含文件的搜索路径中。在源代码中添加 TutorialConfig.h.in 文件:

// the configured options and settings for Tutorial
#define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@
#define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@

当 CMake 生成这个头文件时,@Tutorial_VERSION_MAJOR@ 和 @Tutorial_VERSION_MINOR@ 的值将会由 CMakeLists.txt 中对应的值替换。接下来我们将头文件包含到 tutorial.cxx 中并且使用这个版本号,代码如下:

// A simple program that computes the square root of a number
#include 
#include 
#include 
#

你可能感兴趣的:(#,CMake,Tools,Cmake)