CMake常见变量——Project和CMake相关信息

来源:互联网 发布:ae软件的功能 编辑:程序博客网 时间:2024/05/18 15:07
  • CMAKE_AR: 静态库的归档工具的名称。这个变量指定了用于创建档案或静态库的程序的名称。
  • CMAKE_ARGC: 在脚本模式下传给CMake的命令行参数的个数。当运行在-P脚本模式下,CMake设置该变量为命令行参数的个数。
  • CMAKE_ARGV0: 在脚本模式下传给CMake的命令行的第一个参数。
  • CMAKE_BINARY_DIR: 构建树的最外层路径,是当前CMake构建树的最外层的全路径。对于在源码中构建的情况,它与CMAKE_SOURCE_DIR的值一样。
  • CMAKE_BUILD_TOOL: 执行构建过程的工具。该变量设置为CMake构建时输出所需的程序。对于VS 6, CMAKE_BUILD_TOOL设置为msdev, 对于Unix,它被设置为make 或 gmake。 对于 VS 7, 它被设置为devenv. 对于Nmake构建文件,它的值为nmake。
  • CMAKE_CACHEFILE_DIR: 该变量设置为包含CMakeCache.txt文件的目录的全路径。通常与CMAKE_BINARY_DIR的值一样。
  • CMAKE_CACHE_MAJOR_VERSION:用于创建CMakeCache.txt文件的CMake的主版本号。只有当CMake运行于在由一个不同版本的CMake创建的cache文件时,这个变量的值才会不同。
  • CMAKE_CACHE_MINOR_VERSION:用于创建CMakeCache.txt文件的CMake的次版本号。只有当CMake运行于在由一个不同版本的CMake创建的cache文件时,这个变量的值才会不同。
  • CMAKE_CACHE_PATCH_VERSION: 用于创建CMakeCache.txt文件的CMake的补丁版本号。只有当CMake运行于在由一个不同版本的CMake创建的cache文件时,这个变量的值才会不同。
  • CMAKE_CFG_INTDIR: 构建时对每个配置的输出子目录的引用。对于在一个构建树中支持多个配置的本地构建系统(例如Visual Studio或Xcode),该值就是对指定单个配置输出子目录的一个构建时变量的引用。对于Makefile产生器,该变量解析为”.”。因为在此构建树,只有一个配置。示例的值 如下:

       $(IntDir)        = Visual Studio 6
       $(OutDir)        = Visual Studio 7, 8, 9
       $(Configuration) = Visual Studio 10
       $(CONFIGURATION) = Xcode
       .                = Make-based tools

由于这些值由本地构建系统解析,该变量只适合用于命令行下,这些命令在构建时被解析。使用例子如下:

 add_executable(mytool mytool.c)
       add_custom_command(
         OUTPUT out.txt
         COMMAND${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool
           ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt
         DEPENDS mytool in.txt
        )
       add_custom_target(drive ALL DEPENDSout.txt)

  • CMAKE_COMMAND: 指向cmake可执行程序的全路径。

 

  • CMAKE_CROSSCOMPILING: 当前CMake是否是交叉编译。
  • CMAKE_CTEST_COMMAND: 指向ctest可执行程序的全路径。
  • CMAKE_CURRENT_BINARY_DIR: 当前正在处理的构建目录。每个由add_subdirectory添加的目录将会在构建树中创建一个构建目录。对于直接在源码目录中编译的情况,当前正在处理的构建目录就是当前源码所在的目录。
  • CMAKE_CURRENT_LIST_DIR: 当前处理的CMakeLists.txt文件所在的目录。
  • CMAKE_CURRENT_LIST_FILE: 当前处理的CMakeLists.txt文件的全路径。
  • CMAKE_CURRENT_LIST_LINE: 当前处理的CMakeLists.txt文件的行号。
  • CMAKE_CURRENT_SOURCE_DIR: 当前处理的源码路径。
  • CMAKE_DL_LIBS: 包含dlopen和dlclose的库的名称。
  • CMAKE_EDIT_COMMAND: cmake-gui或ccmake的全路径。
  • CMAKE_EXECUTABLE_SUFFIX: 该平台上可执行程序的后缀。
  • CMAKE_EXTRA_GENERATOR: 额外的用于构建工程的产生器。当使用Eclispse, CodeBlocks或KDevelop产生器时,CMake会产生Makefile文件以及相应的工程文件(CMAKE_GENERATOR)。该IDE工程文件产生器存储于CMAKE_EXTRA_GENERATOR(如:”Eclipse CDT4”)
  • CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES: 共享库额外的后缀名。这些共享库不是CMAKE_SHARED_LIBRARY_SUFFIX。在分析某个目标链接的库时,CMake使用该变量识别外部共享库文件。
  • CMAKE_GENERATOR: 构建工程的产生器。它将产生构建文件 (e.g. "Unix Makefiles", "Visual Studio 6", etc.)
  • CMAKE_HOME_DIRECTORY: 源码树的顶级目录的路径。
  • CMAKE_IMPORT_LIBRARY_PREFIX:链接的引入库的前缀。CMAKE_IMPORT_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_IMPORT_LIBRARY_SUFFIX: 链接的引入库的后缀。CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_LINK_LIBRARY_SUFFIX: 链接的库的后缀。如Windows下是.lib。
  • CMAKE_MAJOR_VERSION: CMake的主版本号。
  • CMAKE_MAKE_PROGRAM: 该变量主要是为了向后兼容。参见:CMAKE_BUILD_TOOL.
  • CMAKE_MINOR_VERSION: CMake的次版本号。
  • CMAKE_PARENT_LIST_FILE: 正在处理的CMakeLists.txt文件的父CMakelists.txt文件所在的路径。
  • CMAKE_PATCH_VERSION: CMake的补丁版本。
  • CMAKE_PROJECT_NAME: 当前工程的名字。
  • CMAKE_RANLIB: 静态库的随机化工具的名称。
  • CMAKE_ROOT: cmake的安装目录。
  • CMAKE_SCRIPT_MODE_FILE: 脚本模式下正在处理的脚本文件。
  • CMAKE_SHARED_LIBRARY_PREFIX: 链接的共享库的前缀。TCMAKE_SHARED_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_SHARED_LIBRARY_SUFFIX:链接的共享库的后缀。CMAKE_SHARED_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_SHARED_MODULE_PREFIX: 链接的可加载模块的前缀。CMAKE_SHARED_MODULE_PREFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_SHARED_MODULE_SUFFIX: 链接的可加载模块的后缀。CMAKE_SHARED_MODULE_SUFFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_SIZEOF_VOID_P: void指针的大小。
  • CMAKE_SKIP_RPATH: 如果为真,将不添加运行时路径信息。默认情况下是如果平台支持运行时信息,将会添加运行时信息到可执行程序当中。这样从构建树中运行程序将很容易。为了在安装过程中忽略掉RPATH,使用CMAKE_SKIP_INSTALL_RPATH。
  • CMAKE_SOURCE_DIR: 源码树的最顶级目录。当在源码中编译时,与CMAKE_BINARY_DIR的值一致。
  • CMAKE_STANDARD_LIBRARIES: 链接到每个可执行程序和共享库的标准库。它包含一系列库。
  • CMAKE_STATIC_LIBRARY_PREFIX:链接的静态库的前缀。CMAKE_STATIC_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_STATIC_LIBRARY_SUFFIX: 链接的静态库的后缀。CMAKE_STATIC_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>.
  • CMAKE_TWEAK_VERSION: CMake的tweak版本。
  • CMAKE_USING_VC_FREE_TOOLS: 当使用了免费的Visual tools时为真。通常当编译器是Visual Studio免费工具时,该变量设为真。
  • CMAKE_VERBOSE_MAKEFILE: 当开启时创建verbose的构建文件。默认为false.当设置为真时,CMake会产生verbose构建文件,它会显示使用到的每个命令行。
  • CMAKE_VERSION: CMake的完全版本号。格式:major.minor.patch[.tweak[-id]]。
  • PROJECT_BINARY_DIR: 工程的构建目录。
  • PROJECT_NAME: 工程名。
  • PROJECT_SOURCE_DIR: 当前工程的顶级目录。
  • [Project name]_BINARY_DIR: 对应工程的顶级构建目录。
  • [Project name]_SOURCE_DIR: 对应工程的源码目录。

 

原创粉丝点击