cmake的命令execute_process

execute_process(COMMAND  [args1...]]
                [COMMAND  [args2...] [...]]
                [WORKING_DIRECTORY ]
                [TIMEOUT ]
                [RESULT_VARIABLE ]
                [OUTPUT_VARIABLE ]
                [ERROR_VARIABLE ]
                [INPUT_FILE ]
                [OUTPUT_FILE ]
                [ERROR_FILE ]
                [OUTPUT_QUIET]
                [ERROR_QUIET]
                [OUTPUT_STRIP_TRAILING_WHITESPACE]
                [ERROR_STRIP_TRAILING_WHITESPACE])
执行进程
    这条命令可以执行系统命令,将输出保存到cmake变量或文件中。比如你想通过git命令读取版本号,在代码中使用。又比如你想列出某些文件的名称在代码中使用。
    后面还会给出一个简单的例子供大家参考。

Runs the given sequence of one or more commands with the standard output of each process piped to the standard input of the next. A single standard error pipe is used for all processes.
运行一个或多个给定的命令序列,每一个进程的标准输出流向(管道)下一个进程的标准输入。所有的流程使用一个单独的标准错误管道。

Options:

COMMAND

    A child process command line.

    CMake executes the child process using operating system APIs directly. All arguments are passed VERBATIM to the child process. No intermediate shell is used, so shell operators such as > are treated as normal arguments. (Use the INPUT_*, OUTPUT_*, and ERROR_* options to redirect stdin, stdout, and stderr.)

命令
    子进程命令行。CMake使用操作系统的APIs直接执行子进程。所有的参数逐字传递。没有中间脚本被使用,所以像>(输出重定向)这样的脚本操作符被当作普通参数处理。(使用INPUT_、OUTPUT_、ERROR_那些选项去重定向 stdin、stdout、stderr。)

WORKING_DIRECTORY
    The named directory will be set as the current working directory of the child processes.

工作路径
    指定的目录将被设置为子进程的当前工作目录。

TIMEOUT
    The child processes will be terminated if they do not finish in the specified number of seconds (fractions are allowed).

超时
    子进程如果在指定的秒数内未结束将被中断(允许使用分数)。

RESULT_VARIABLE
    The variable will be set to contain the result of running the processes. This will be an integer return code from the last child or a string describing an error condition.

结果变量
    变量被设置为包含子进程的运行结果。返回码将是一个来自于最后一个子进程的整数或者一个错误描述字符串。

OUTPUT_VARIABLE, ERROR_VARIABLE
    The variable named will be set with the contents of the standard output and standard error pipes, respectively. If the same variable is named for both pipes their output will be merged in the order produced.

输出变量,错误变量
    命名的变量将被分别设置为标准输出和标准错误管道的内容。如果为2个管道命名了相同的名字,他们的输出将按照产生顺序被合并。

INPUT_FILE, OUTPUT_FILE, ERROR_FILE
    The file named will be attached to the standard input of the first process, standard output of the last process, or standard error of all processes, respectively. If the same file is named for both output and error then it will be used for both.

输入文件,输出文件,错误文件
    命名的文件将分别与第一个子进程的标准输入,最后一个子进程的标准输出,所有进程的标准输出相关联。如果为输出和错误指定了相同的文件名,2个都将会被关联。

OUTPUT_QUIET, ERROR_QUIET
    The standard output or standard error results will be quietly ignored.

输出忽略,错误忽略
    标准输出和标准错误的结果将被静默地忽略。

If more than one OUTPUT_* or ERROR_* option is given for the same pipe the precedence is not specified. If no OUTPUT_* or ERROR_* options are given the output will be shared with the corresponding pipes of the CMake process itself.

如果为同一个管道指定了多个错误和输出选项,优先级是未知的。如果未指定输出和错误选项,输出将和cmake进程共享管道。

The execute_process() command is a newer more powerful version of exec_program(), but the old command has been kept for compatibility. Both commands run while CMake is processing the project prior to build system generation. Use add_custom_target() and add_custom_command() to create custom commands that run at build time.

execute_process() 命令是 exec_program()的新的更强大的版本,但是旧命令仍被兼容。这两个命令运行在cmake处理项目时,构建系统生成器之前。使用add_custom_target()和add_custom_command()创建在构建时运行的自定义命令。

下面的例子经本人测试,如果指定了OUTPUT_FILE,OUTPUT_VARIABLE将无效。

cmake_minimum_required(VERSION 3.0)

execute_process(COMMAND touch aaa.jpg
                COMMAND touch bbb.png
                COMMAND ls
                COMMAND grep -E "png|jpg"
                OUTPUT_FILE pics)
时间: 2024-10-09 05:06:48

cmake的命令execute_process的相关文章

cmake set命令

1 normal variable.cache variable.environment variable 1.1 什么是普通的cmake变量 1.2 什么是cmake cache变量 1.3 什么是cmake环境变量 1.4 普通的cmake变量.cmake cache变量和cmake环境变量有什么区别 2 如何设置cmake的普通变量.cache变量和环境变量?

CMake命令:CMake构建系统的骨架

CMake命令:CMake构建系统的骨架 80个命令(转载自http://www.cnblogs.com/coderfenghc/archive/2012/06/16/CMake_ch_01.html#2996205) CMD#1: add_custom_command为生成的构建系统添加一条自定义的构建规则. add_custom_command命令有两种主要的功能:第一种是为了生成输出文件,添加一条自定义命令. add_custom_command(OUTPUT output1 [outpu

CMake入门教程

CMake入门教程 参考文献:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html 官方网址:http://www.cmake.org/ 下载网址:http://www.cmake.org/download/ 当前版本:3.1rc3 本文基于CMake 2.8版本编写. CMake 是一个跨平台的,开源的构建系统(BuildSystem).CMake 可以通过 CMakeLists.txt 文件来产生特定平台的标准的构建

CMake 手册详解

CMake 手册详解 来源 http://www.cnblogs.com/coderfenghc/tag/cmake/ 公司的一个项目使用CMake作为跨平台构建工具:业务有需求,当然要好好研读一下官方的技术手册.目前的计划是先把官方手册翻译一下,了解清楚CMake中的各种命令.属性和变量的用法.同时在工作中也会阅读CMake的真实源码,后续会基于此陆续写一些工程中使用CMake的心得.CMake的版本也在不停更新,有些新的命令和变量会随着版本更新添加进来,这是后事了,暂且不管:现在锁定CMak

Cmake知识整理

目录 CMake官方文档 CMake特点 CMake命令 find_package 二进制目标 构建选项 CMake文本内置命令 CMake工程内置命令 CMake toolchains CMake变量--信息描述部分 CMake变量--动作行为部分 CMake变量--系统描述部分 CMake变量--构建控制部分 CMake变量--编程语言部分 CMake变量--CTest部分 CMake变量--CPack部分 CMake官方文档 CMake特点 CMake是支持跨平台的构建系统. CMake命

make makefile cmake qmake都是什么,有什么区别

原文:https://www.zhihu.com/question/27455963 作者:玟清链接:https://www.zhihu.com/question/27455963/answer/36722992来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. make 是用来执行Makefile的2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执

cmake使用示例与整理总结

本文代码托管于github  cmake_demo cmake中一些预定义变量 PROJECT_SOURCE_DIR 工程的根目录 PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/build CMAKE_INCLUDE_PATH 环境变量,非cmake变量 CMAKE_LIBRARY_PATH 环境变量 CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径 CMAKE_CURRENT_

cmake

前言cmake 已经开发了 5,6 年的时间,如果没有 KDE4,也许不会有人或者 Linux 发行版本重视cmake,因为除了 Kitware 似乎没有人使用它.通过 KDE4 的选型和开发,cmake 逐渐进入了人们的视线,在实际的使用过程中,cmake 的优势也逐渐的被大家所认识,至少 KDE 的开发者们给予了 cmake极高的评价,同时庞大的 KDE 项目使用 cmake 来作为构建工具也证明了 cmake 的可用性和大项目管理能力.所以,cmake 应该感谢 KDE,也正因为如此,cm

CMake 使用方法(转)

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake. CMake 使用方法 CMake的所有的语句都写在一个叫:CMakeLists.txt 的文件中.当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置.这个命令必须指向CMakeLists.txt所在的目录.配置完成之后,应用cmake命令生成