cmake是自动生成MAKEFILE的开源工具。这几天需要使用CMAKEfile,搜索了些资料,有些资料很好,但是在实际使用过程中还是有诸多的
疑问,现在把CMAKE最新版本的文档翻译,后面再配上比较常使用的例子和CMAKE自己的例子进行简单说明,以方便自己今后使用和广大的
工程师参考。
本文翻译的文档是下面的链接:
http://www.cmake.org/cmake/help/cmake-2-8-docs.html
NAME
cmake 是一个多平台的makefile自动生成工具
Usage
该工具使用时以如下命令运行,cmake是命令名称,option是参数,一般使用不需要添加,处特殊需要,后面文档也会对option做
具体说明,path-to-source是你需要生成makefile的文件的路径,一般是文件夹。
cmake [options] <path-to-source> cmake [options] <path-to-existing-build>
例子:
我在ubuntu上的/home/dalek/work文件夹中的cstor文件夹中存放了程序文件我需要使用cmake自动生成makefile时
需要使用如下命令,当然是需要CMakeLists.txt文件的,这时我们先不去理会这个文件,
cmake .
在CMakeLists.txt文件正确的情况下会自动生成makefile文件,这时使用make命令就可以编译自己的程序文件了。
Description描述
预先加载一个脚本来填充缓存,没用过,这里只做翻译。当CMAKE第一次运行时,cmake会自动创建一个CMakeCache.txt文件,这个CMakeCache.txt文件会被通用的设置填充。这个选项是你可以指定一个自己的CMakeCache.txt用于指定自己特定的设置。配置的这个CMakeCache.txt优先于默认的配置。给定的文件应该是CMake的脚本,包含SET命令,这个命令用于使用CACKE的选项,它不是一个cache-format文件。-D <value>:<type>=<value>:创建一个cmake的缓存条目这个CMakeCache.txt文件会被通用的设置填充。当CMAKE第一次运行时,cmake会自动创建一个CMakeCache.txt文件,这个选项用于指定一个设置的值,这个设置优先于这个工程的默认值,这个选项可以重复用。看到这里可以猜想出意思了,上面的选项用于指定CACHE文件,这个只是用来将默认的CACHE文件中的部分值做修改,<type>=<value>类型=值,cache文件中的类型值设置为value,而且可以同事设置多个。如下:cmake -D<type>=<value><type>=<value> ...-U <globbing-expr>:从cmake cache中删除匹配的条目这个选项被用于删除一个或多个变量,可以使用*通配符表达式,如上可以重复使用。-G <generator-name>:指定一个makefile生成器cmake支持多种本地系统,一个makefile生成器的责任是生成一个特定的编译系统。可能生成器的名字被指定在生成器章节。-Wno-dev:禁止警告CMakeLists.txt错误不出警告;-Wdev:使能警告-E:cmake命令模式CMakeLists.txt错误出警告;对于平台的独立性,CMKAE在所有平台下提供如下命令 -E提供命令的有用信息;chdir, compare_files, copy, copy_directory, copy_if_different, echo, echo_append, environment, make_directory, md5sum, remove, remove_directory, rename, tar, time, touch, touch_nocreate。另外,一些平台提供特殊的命令。WIN平台提供如下命令:comspec, delete_regv, write_regv。On UNIX: create_symlink。-i
: Run in wizard mode运行于向导模式没有GUI的向导的交互模式,在配置项目时用户回答问题,这些答案用来设置CMAKE缓存值。-L[A][H]:列出不是高级的缓存变量列出缓存变量将运行CMAKE,和列出所有在CMAKE缓存中的没有被标记为INTERNAL和ADVANCED的变量。这个选项将有力的现实当前的CMAKE设置,当需要改变是可以使用-D选项,改变其中的一些变量可能导致更多的变量被创建。如果A被指定,这是它将显示高级的变量,若果H被指定则将显示每个变量的帮助信息。--build<dir>:构建一个CMAKE生成的项目二叉树;<dir> = Project binary directory to be built.将要被构建的项目二叉树的目录 --target <tgt> = Build <tgt> instead of default targets.构建的target替代默认的target(target做什么用的,你知道?) --config <cfg> = For multi-configuration tools, choose <cfg>.对于多配置工具,选用 --clean-first = Build target 'clean' first, then build.构建target,先清理,在构建 (To clean only, use --target 'clean'.) --use-stderr = Don't merge stdout/stderr.不需要合并标准输出或标准错误 -- = Pass remaining options to the native tool.传剩下的选项到本地工具运行cmake --build没有快速帮助选项-N:显示模式只加载到cache,不运行配置和创建步骤;-F <file>:处理脚本模式处理一个用CMAKE语音写的脚本文件。没有配置和生成步骤被修改,cache没有修改,若变量被使用-D,--find-package:运行于pkg-config like模式使用find_package()检查一个包,打印结果到到标准输出。在Makefile-based 项目或autoconf-based项目,这个能被用于cmake替代pkg-config去找安装。