add_custom_target verbatim
时间: 2023-10-27 20:03:10 浏览: 51
`add_custom_target`是CMake的一个指令,用于创建一个自定义的构建目标。它允许我们在构建过程中定义一些自定义的行为,比如运行脚本、执行自定义命令或者调用其他构建目标。
在CMakeLists.txt文件中使用`add_custom_target`指令时,我们需要指定目标的名称和自定义的行为。这个目标可以是一个文件,也可以是一个命令。当我们运行`make`命令时,CMake会自动执行这个目标,来执行所定义的自定义行为。
使用`add_custom_target`的一种常见情况是在构建过程中执行一些额外的命令或脚本。比如,我们可以使用它来生成一些源代码文件、复制文件、下载依赖的库等。
如果我们只需要执行一组命令,而不需要生成文件的输出,那么可以将这些命令作为字符串参数传递给`add_custom_target`指令。如果需要生成文件的输出,我们可以使用`COMMAND`选项来指定命令。
总之,`add_custom_target`指令是CMake中用于创建自定义构建目标的一个非常有用的指令。通过使用它,我们可以在构建过程中执行一些额外的操作,增强我们的构建系统的灵活性和功能性。
相关问题
add_custom_command 例子
下面是一个 `add_custom_command` 的示例:
```
add_custom_command(OUTPUT output_file.txt
COMMAND command1 arg1 arg2
COMMAND command2 arg3 arg4
DEPENDS input_file.txt
COMMENT "Generating output file"
VERBATIM)
```
这个命令的作用是在构建目标之前执行一些自定义命令。在这个示例中,我们让它生成一个名为 `output_file.txt` 的文件,生成的命令是 `command1 arg1 arg2` 和 `command2 arg3 arg4`。生成 `output_file.txt` 文件的命令依赖于 `input_file.txt` 文件。`COMMENT` 选项用于提供一些注释信息,`VERBATIM` 选项用于将命令参数直接传递给 shell。
当我们运行 `make` 命令时,`add_custom_command` 中指定的命令将被执行。如果生成的 `output_file.txt` 文件不存在或者其时间戳早于 `input_file.txt` 的时间戳,那么这些命令将被执行。如果生成的 `output_file.txt` 文件已经存在并且其时间戳晚于 `input_file.txt` 的时间戳,那么这些命令将不会被执行。
WORKING_DIRECTORY 在add_custom_target看里面在前面还是后面
`WORKING_DIRECTORY` 在 `add_custom_target` 中应该放在参数列表的前面。具体的语法如下:
```
add_custom_target(target_name
[ALL]
[command1 [args1...]]
[COMMAND command2 [args2...] ...]
[DEPENDS depend depend depend ...]
[WORKING_DIRECTORY dir]
[COMMENT comment]
[VERBATIM])
```
其中,`WORKING_DIRECTORY` 参数指定了自定义命令执行的工作目录。