存档

2019年2月 的存档

跨平台工程构建:CMake 的使用 (二)基本语法

2019/02/20 5,847

组织结构

cmake 文件包括 CMakeLists.txt 和以 .cmake 为后缀的文件。
程序源文件最外层的 CMakeLists.txt 文件是 cmake 的入口文件,这个文件可以定义了整个工程的构建规范。它也可以使用 add_subdirectory() 命令来包含一个子文件夹,每个使用该命令添加的子文件夹中也需要有一个 CMakeLists.txt 文件。

变量

变量的包装与展开

在 cmake 中, 变量都是以字符串的形式存在的。使用 set( ) 包装变量, 使用 ${} 展开变量。${} 可以嵌套使用。 使用未包装的变量会导致空展开:

执行结果如下:

列表

继续阅读

跨平台工程构建:CMake 的使用 (一)

2019/02/16 5,594

什么是 CMake

当我们在构建工程时,在不同的平台上使用不同的工具,如在Windows上使用 Visual Studio 工程, 在 Mac 上使用 Xcode 工程。

这些工程只限于特定的平台。当我们需要跨平台构建工程时,就需要使用 CMake 了,它是一个开源的 跨平台系统构建工具 。同一个 CMake 工程可以在不同的平台上转换为与平台适应的工具,极大的方便了跨平台工程构建。

第一个 CMake

新建一个空目录,在其中新建一个文本文件,命名为 CMakeLists.txt,并输入以下内容:

好了,你的第一个 cmake 工程就已经建好了。接下来,新建一个文件夹 build, 并在该文件夹下运行命令:

你可能会得到以下输出:

再来看这个路径下,cmake 生成了一堆文件:

我们成功的使用 cmake 在 Windows 上构建了一个 vs 工程。 当然,如果你的操作系统是 MacOS, 或者 Linux, 结果后有所不同。

其实在 CMakeLists.txt 所以在路径下也能运行 cmake 命令。不过cmake没有提供专门的工具来清理生成的文件,为了方便管理,我们将其生成在 build 目录下。

这个 cmake 工程的作用仅仅是输出一了条消息,并没有什么意义。下面我们来让它更有意义一点:

继续阅读