logo资料库

CMake手册详解[格式整理+带标签].pdf

第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
资料共61页,剩余部分请下载后查看
CMake手册详解[转-格式整理]
0 引言
1 命令名称
2 用法
3 描述
4 选项
4.1 -C
4.2 -D
4.3 -U
4.4 -G
4.5 -E
4.6 -i
4.7 -L
4.8 --build
4.9 --target
4.10 --config
4.11 –clean-first
4.12 -N
4.13 -P
4.14 –graphviz
4.15 –system-information
4.16 –debug-trycompile
4.17 --debug-output
4.18 --trace
4.19 –help-command
4.20 –help-command-list
4.21 –help-commands
4.22 –help-compatcommands
4.23--help-module
4.24 --help-module-list
4.25 --help-modules
4.26 --help-custom-modules
4.27 --help-policy
4.28 --help-policies
4.29 --help-property
4.30 --help-property-list
4.31 --help-properties
4.32 --help-variable
4.33 --help-variable-list
4.34 --help-variables
4.35 –copyright
4.36 --help
4.37 --help-full
4.38 --help-html
4.39 --help-man
4.40 --version
5 生成器
6 命令
6.1 add_custom_command
6.2 add_custom_target
6.3 add_definitions
6.4 add_dependencies
6.5 add_executable
6.6 add_library
6.7 add_subdirectory
6.8 add_test
6.9 aux_source_directory
6.10 break
6.11 build_command
6.12 cmake_minimum_required
6.13 cmake_policy
6.14 confiure_file
6.15 create_test_sourcelist
6.16 define_property
6.17 else
6.18 elseif
6.19 enable_language
6.20 enable_testing
6.21 endforeach
6.22 endfunction
6.23 endif
6.24 endmacro
6.25 endwhile
6.26 execute_process
6.27 export
6.28 file
6.29 find_file
6.30 find_library
6.31 find_package
6.32 find_path
6.33 find_program
6.34 fltk_wrap_ui
6.36 function
6.37 get_cmake_property
6.38 get_directory_property
6.39 get_filename_component
6.40 get_property
6.41 get_source_file_property
6.42 get_target_property
6.43 get_test_property
6.44 if
6.45 include
6.46 include_directories
6.47 include_external_msproject
6.48 include_regular_expression
6.49 install
6.50 link_directories
6.51 list
6.52 load_cache
6.53 load_command
6.54 macro
6.55 mark_as_advanced
6.56 math
6.57 message
6.58 option
6.59 output_required_files
6.60 project
6.61 qt_wratp_cpp
6.62 qt_wrap_ui
6.64 return
6.65 separate_arguments
6.66 set
6.67 set_directory_properties
6.68 set_property
6.69 set_source_files_properties
6.70 set_target_properties
6.71 set_tests_properties
6.72 site_name
6.73 source_group
6.74 string
6.75 target_link_libraries
6.76 try_compile
6.77 try_run
6.78 unset
6.79 variable_watch
6.80 while
7 变量
7.1 提供信息的变量
8 实验指南
8.1 作为基础的起始点(步骤1)
8.2引入库(步骤2)
8.3安装与测试(步骤3)
8.4 增加系统内省(步骤4)
8.5 添加一个生成文件以及生成器(步骤5)
8.6 构建一个安装器(步骤6)
8.7增加对Dashboard的支持(步骤7)
CMake 手册详解[转-格式整理] 目录 CMake 手册详解[转-格式整理] ............................................................................................................................................... 1 0 引言 ............................................................................................................................................................................... 4 1 命令名称 ....................................................................................................................................................................... 4 2 用法 ............................................................................................................................................................................... 4 3 描述 ............................................................................................................................................................................... 4 4 选项 ............................................................................................................................................................................... 4 4.1 -C .......................................................................................................................................................................... 4 4.2 -D ......................................................................................................................................................................... 4 4.3 -U ......................................................................................................................................................................... 5 4.4 -G ......................................................................................................................................................................... 5 4.5 -E .......................................................................................................................................................................... 5 4.6 -i ........................................................................................................................................................................... 5 4.7 -L .......................................................................................................................................................................... 5 4.8 --build................................................................................................................................................................... 5 4.9 --target ................................................................................................................................................................. 6 4.10 --config ............................................................................................................................................................... 6 4.11 –clean-first ......................................................................................................................................................... 6 4.12 -N ....................................................................................................................................................................... 6 4.13 -P ........................................................................................................................................................................ 6 4.14 –graphviz ............................................................................................................................................................ 6 4.15 –system-information .......................................................................................................................................... 6 4.16 –debug-trycompile ............................................................................................................................................ 6 4.17 --debug-output .................................................................................................................................................. 7 4.18 --trace ................................................................................................................................................................ 7 4.19 –help-command ................................................................................................................................................. 7 4.20 –help-command-list ........................................................................................................................................... 7 4.21 –help-commands ............................................................................................................................................... 7 4.22 –help-compatcommands ................................................................................................................................... 7 4.23--help-module ..................................................................................................................................................... 7 4.24 --help-module-list .............................................................................................................................................. 8 4.25 --help-modules .................................................................................................................................................. 8 4.26 --help-custom-modules ..................................................................................................................................... 8 4.27 --help-policy ....................................................................................................................................................... 8 4.28 --help-policies .................................................................................................................................................... 8 4.29 --help-property .................................................................................................................................................. 8 4.30 --help-property-list ............................................................................................................................................ 8 4.31 --help-properties ................................................................................................................................................ 9 4.32 --help-variable ................................................................................................................................................... 9 4.33 --help-variable-list .............................................................................................................................................. 9 4.34 --help-variables .................................................................................................................................................. 9 4.35 –copyright .......................................................................................................................................................... 9 4.36 --help.................................................................................................................................................................. 9
4.37 --help-full ........................................................................................................................................................... 9 4.38 --help-html ....................................................................................................................................................... 10 4.39 --help-man ....................................................................................................................................................... 10 4.40 --version ........................................................................................................................................................... 10 5 生成器 ......................................................................................................................................................................... 10 6 命令 ............................................................................................................................................................................. 11 6.1 add_custom_command ................................................................................................................................... 11 6.2 add_custom_target ......................................................................................................................................... 12 6.3 add_definitions .................................................................................................................................................. 13 6.4 add_dependencies ............................................................................................................................................ 13 6.5 add_executable.................................................................................................................................................. 13 6.6 add_library ......................................................................................................................................................... 14 6.7 add_subdirectory ............................................................................................................................................... 14 6.8 add_test ............................................................................................................................................................. 15 6.9 aux_source_directory ........................................................................................................................................ 15 6.10 break ................................................................................................................................................................ 16 6.11 build_command ............................................................................................................................................... 16 6.12 cmake_minimum_required ............................................................................................................................. 16 6.13 cmake_policy ................................................................................................................................................... 16 6.14 confiure_file ..................................................................................................................................................... 17 6.15 create_test_sourcelist ..................................................................................................................................... 17 6.16 define_property ............................................................................................................................................... 18 6.17 else ................................................................................................................................................................... 18 6.18 elseif ................................................................................................................................................................ 19 6.19 enable_language ............................................................................................................................................. 19 6.20 enable_testing ................................................................................................................................................. 19 6.21 endforeach ....................................................................................................................................................... 19 6.22 endfunction ..................................................................................................................................................... 19 6.23 endif ................................................................................................................................................................. 19 6.24 endmacro ......................................................................................................................................................... 19 6.25 endwhile .......................................................................................................................................................... 20 6.26 execute_process .............................................................................................................................................. 20 6.27 export .............................................................................................................................................................. 20 6.28 file .................................................................................................................................................................... 21 6.29 find_file ............................................................................................................................................................ 22 6.30 find_library ...................................................................................................................................................... 24 6.31 find_package .................................................................................................................................................... 26 6.32 find_path ......................................................................................................................................................... 29 6.33 find_program ................................................................................................................................................... 31 6.34 fltk_wrap_ui ..................................................................................................................................................... 32 6.36 function............................................................................................................................................................ 33 6.37 get_cmake_property ....................................................................................................................................... 33 6.38 get_directory_property ................................................................................................................................... 33 6.39 get_filename_component ............................................................................................................................... 34 6.40 get_property .................................................................................................................................................... 34 6.41 get_source_file_property ................................................................................................................................ 35 6.42 get_target_property ........................................................................................................................................ 35 6.43 get_test_property ............................................................................................................................................ 35 6.44 if ....................................................................................................................................................................... 35
6.45 include ............................................................................................................................................................. 37 6.46 include_directories .......................................................................................................................................... 38 6.47 include_external_msproject ............................................................................................................................ 38 6.48 include_regular_expression ............................................................................................................................. 38 6.49 install ............................................................................................................................................................... 38 6.50 link_directories ................................................................................................................................................ 41 6.51 list .................................................................................................................................................................... 41 6.52 load_cache ....................................................................................................................................................... 42 6.53 load_command ................................................................................................................................................ 42 6.54 macro ............................................................................................................................................................... 43 6.55 mark_as_advanced .......................................................................................................................................... 43 6.56 math ................................................................................................................................................................. 43 6.57 message ........................................................................................................................................................... 43 6.58 option .............................................................................................................................................................. 44 6.59 output_required_files ...................................................................................................................................... 44 6.60 project .............................................................................................................................................................. 44 6.61 qt_wratp_cpp .................................................................................................................................................. 44 6.62 qt_wrap_ui ...................................................................................................................................................... 44 6.64 return ............................................................................................................................................................... 45 6.65 separate_arguments ........................................................................................................................................ 45 6.66 set .................................................................................................................................................................... 45 6.67 set_directory_properties ................................................................................................................................. 46 6.68 set_property .................................................................................................................................................... 46 6.69 set_source_files_properties ............................................................................................................................ 46 6.70 set_target_properties ...................................................................................................................................... 47 6.71 set_tests_properties ........................................................................................................................................ 48 6.72 site_name ........................................................................................................................................................ 48 6.73 source_group ................................................................................................................................................... 48 6.74 string ................................................................................................................................................................ 48 6.75 target_link_libraries ......................................................................................................................................... 49 6.76 try_compile ...................................................................................................................................................... 50 6.77 try_run ............................................................................................................................................................. 51 6.78 unset ................................................................................................................................................................ 51 6.79 variable_watch ................................................................................................................................................ 51 6.80 while ................................................................................................................................................................ 52 7 变量 ......................................................................................................................................................................... 52 7.1 提供信息的变量 .............................................................................................................................................. 52 8 实验指南 ..................................................................................................................................................................... 53 8.1 作为基础的起始点(步骤 1) ....................................................................................................................... 53 8.2 引入库(步骤 2) ............................................................................................................................................ 55 8.3 安装与测试(步骤 3) .................................................................................................................................... 56 8.4 增加系统内省(步骤 4) ............................................................................................................................... 57 8.5 添加一个生成文件以及生成器(步骤 5) ................................................................................................... 57 8.6 构建一个安装器(步骤 6) ........................................................................................................................... 60 8.7 增加对 Dashboard 的支持(步骤 7) ............................................................................................................. 61
转自[http://www.cnblogs.com/coderfenghc/tag/cmake/] 0 引言 公司的一个项目使用 CMake 作为跨平台构建工具;业务有需求,当然要好好研读一下官方的技术手册。目前的 计划是先把官方手册翻译一下,了解清楚 CMake 中的各种命令、属性和变量的用法。同时在工作中也会阅读 CMake 的真实源码,后续会基于此陆续写一些工程中使用 CMake 的心得。CMake 的版本也在不停更新,有些新的命令和变 量会随着版本更新添加进来,这是后事了,暂且不管;现在锁定 CMake 2.8.3 作为手册翻译的版本。 作为园子里的新丁,文章在术语和表达等等方面会有欠缺的地方,还请大侠们慷慨指点。另外,罗马不是一天 建成的,长长的手册翻译完也不知道要经历多少日升月落;不过还是希望自己能够坚持下去:-)。 1 命令名称 cmake - 跨平台 Makefile 生成工具。 2 用法 cmake [选项] <源码路径> cmake [选项] <现有构建路径> 3 描述 cmake 可执行程序是 CMake 的命令行界面。它可以用脚本对工程进行配置。工程配置设置可以在命令行中使用 -D 选项指定。使用-i 选项,cmake 将通过提示交互式地完成该设置。 CMake 是一个跨平台的构建系统生成工具。它使用平台无关的 CMake 清单文件 CMakeLists.txt,指定工程的构 建过程;源码树的每个路径下都有这个文件。CMake 产生一个适用于具体平台的构建系统,用户使用这个系统构建 自己的工程。 4 选项 4.1 -C -C : 预加载一个脚本填充缓存文件。 cmake 在一个空的构建树上第一次运行时,它会创建一个 CMakeCache.txt 文件,然后向其中写入可定制的项目 设置数据。-C 选项可以用来指定一个文件,在第一次解析这个工程的 cmake 清单文件时,从这个文件加载缓存的条 目(cache entries)信息。被加载的缓存条目比项目默认的值有更高的优先权。参数中给定的那个文件应该是一个 CMake 脚本,其中包含有使用 CACHE 选项的 SET 命令;而不是一个缓存格式的文件。 4.2 -D -D :=: 创建一个 CMake 的缓存条目。 当 cmake 第一次运行于一个空的构建数时,它会创建一个 CMakeCache.txt 文件,并且使用可定制的工程 设置来填充这个文件。这个选项可以用来指定优先级高于工程的默认值的工程设置值。这个参数可以被重复多 次,用来填充所需要数量的缓存条目(cache entries)。
4.3 -U -U : 从 CMake 的缓存文件中删除一条匹配的条目。 该选项可以用来删除 CMakeCache.txt 文件中的一或多个变量。文件名匹配表达式(globbing expression)支持 通配符*和?的使用。该选项可以重复多次以删除期望数量的缓存条目。使用它时要小心,你可能因此让自己的 CMakeCache.txt 罢工。 4.4 -G -G : 指定一个 makefile 生成工具。 在具体的平台上,CMake 可以支持多个原生的构建系统。makefile 生成工具的职责是生成特定的构建系统。可 能的生成工具的名称将在生成工具一节给出。 -Wno-dev: 抑制开发者警告。 抑制那些为 CMakeLists.txt 文件的作者准备的警告信息。 -Wdev: 使能开发者警告信息输出功能。 允许那些为 CMakeLists.txt 文件的作者准备的警告信息。 4.5 -E -E: CMake 命令行模式。 为了真正做到与平台无关,CMake 提供了一系列可以用于所有系统上的的命令。以-E 参数运行 CMake 会帮助 你 获得这些 命令的 用法。 可以使用 的命令 有: chdir, copy, copy_if_different copy_directory, compare_files, echo, echo_append, environment, make_directory, md5sum, remove_directory, remove, tar, time, touch, touch_nocreate, write_regv, delete_regv, comspec, create_symlink。 4.6 -i -i: 以向导模式运行 CMake。 向导模式是在没有 GUI 时,交互式地运行 cmake 的模式。cmake 会弹出一系列的提示,要求用户回答关于工程 配置的一行问题。这些答复会被用来设置 cmake 的缓存值。 4.7 -L -L[A][H]: 列出缓存的变量中的非高级的变量。 -L 选项会列出缓存变量会运行 CMake,并列出所有 CMake 的内有被标记为 INTERNAL 或者 ADVANCED 的缓存 变量。这会显示当前的 CMake 配置信息,然后你可以用-D 选项改变这些选项。修改一些变量可能会引起更多的变 量被创建出来。如果指定了 A 选项,那么命令也会显示高级变量。如果指定了 H 选项,那么命令会显示每个变量的 帮助信息。 4.8 --build --build : 构建由 CMake 生成的工程的二进制树。(这个选项的含义我不是很清楚—译注) 该选项用以下的选项概括了内置构建工具的命令行界面 = 待创建的工程二进制路径。
4.9 --target --target = 构建,而不是默认目标。 4.10 --config --config = 对于多重配置工具,选择配置。 4.11 –clean-first --clean-first = 首先构建目标的 clean 伪目标,然后再构建。 (如果仅仅要 clean 掉,使用--target 'clean'选项。) 4.12 -N -N: 查看模式。 仅仅加载缓存信息,并不实际运行配置和生成步骤。 4.13 -P -P : 处理脚本模式。 将给定的 cmake 文件按照 CMake 语言编写的脚本进行处理。不执行配置和生成步骤,不修改缓存信息。如果要 使用-D 选项定义变量,-D 选项必须在-P 选项之前。 4.14 –graphviz --graphviz=[file]: 生成依赖的 graphviz 图。 生成一个 graphviz 软件的输入文件,其中包括了项目中所有库和可执行文件之间的依赖关系。 4.15 –system-information --system-information [file]: 输出与该系统相关的信息。 输出范围比较广的、与当前使用的系统有关的信息。如果在一个 CMake 工程的二进制构建树的顶端运行该命令,它还会 打印一些附加信息,例如缓存,日志文件等等。 4.16 –debug-trycompile --debug-trycompile: 不删除“尝试编译”路径。 不删除那些为 try_compile 调用生成的路径。这在调试失败的 try_compile 文件时比较有用。不过,因为上一次“尝试 编译”生成的旧的垃圾输出文件也许会导致一次不正确通过/不通过,且该结果与上次测试的结果不同,所以该选项可能 会改变“尝试编译”的结果。对于某一次“尝试编译”,该选项最好只用一次;并且仅仅在调试时使用。
4.17 --debug-output --debug-output: 将 cmake 设置为调试模式。 在 cmake 运行时,打印额外的信息;比如使用 message(send_error)调用得到的栈跟踪信息。 4.18 --trace --trace: 将 cmake 设置为跟踪模式。 用 message(send_error )调用,打印所有调用生成的跟踪信息,以及这些调用发生的位置。(这句话含义不是很 确定—译注。) 4.19 –help-command --help-command cmd [file]: 打印单个命令 cmd 的帮助信息,然后退出。 显示给定的命令的完整的文档。如果指定了[file]参数,该文档会写入该文件,其输出格式由该文件的后缀名确定。 支持的文件类型有:man page,HTML,DocBook 以及纯文本。 4.20 –help-command-list --help-command-list [file]: 列出所有可用命令的清单,然后退出。 该选项列出的信息含有所有命令的名字;其中,每个命令的帮助信息可以使用--help-command 选项后跟一个命 令名字得到。如果指定了[file]参数,帮助信息会写到 file 中,输出格式依赖于文件名后缀。支持的文件格式包括: man page,HTML,DocBook 以及纯文本。 4.21 –help-commands --help-commands [file]: 打印所有命令的帮助文件,然后退出。 显示所有当前版本的命令的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,输出格式依赖于文件名 后缀。支持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.22 –help-compatcommands --help-compatcommands [file]: 打印兼容性命令(过时的命令—译注)的帮助信息。 显示所有关于兼容性命令的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,输出格式依赖于文件名 后缀。支持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.23--help-module --help-module module [file]: 打印某单一模块的帮助信息,然后退出。 打印关于给定模块的完整信息。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。 支持的文件格式包括:man page,HTML,DocBook 以及纯文本。
4.24 --help-module-list --help-module-list [file]: 列出所有可用模块名,然后退出。 列出的清单包括所有模块的名字;其中,每个模块的帮助信息可以使用--help-module 选项,后跟模块名的方式 得到。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。支持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.25 --help-modules --help-modules [file]: 打印所有模块的帮助信息,然后退出。 显示关于所有模块的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。支 持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.26 --help-custom-modules --help-custom-modules [file]: 打印所有自定义模块名,然后退出。 显示所有自定义模块的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后 缀。支持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.27 --help-policy --help-policy cmp [file]: 打印单个策略的帮助信息,然后退出。 显示给定的策略的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。 支持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.28 --help-policies --help-policies [file]: 打印所有策略的帮助信息,然后退出。 显示所有策略的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。支 持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.29 --help-property --help-property prop [file]: 打印单个属性的帮助信息,然后退出。 显示指定属性的完整文档。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。支 持的文件格式包括:man page,HTML,DocBook 以及纯文本。 4.30 --help-property-list --help-property-list [file]: 列出所有可用的属性,然后退出。 该命令列出的清单包括所有属性的名字;其中,每个属性的帮助信息都可以通过--help-property 选项后跟一个 属性名的方式获得。如果指定了[file]参数,帮助信息会写到 file 中,且输出格式依赖于文件名后缀。支持的文件格 式包括:man page,HTML,DocBook 以及纯文本。
分享到:
收藏