使用add_custom_command()函数
参考官方文档:https://cmake.org/cmake/help/v3.20/command/add_custom_command.html#command:add_custom_command
之前使用Visual Studio 2010时记得有在项目配置里写后处理事件的脚本,经常遇到权限问题,那时以为是Visual Studio 2010 特别地执行后处理,但其实cmake的函数非常丰富,自带这些需求。windows平台的软件开发真得不堪回首。。。
add_custom_command()函数增加自定义的构建规则到生成的构建系统(我理解就是生成的Makefile,集成了构建系统的参数以及这里增加的自定义的构建规则)。
有两个主要的签名:
1、第一个签名用来增加一个生成输出(文件)的自定义命令
自定义命令可被用来生成源文件。例如:
add_custom_command(
OUTPUT out.c
COMMAND someTool -i ${CMAKE_CURRENT_SOURCE_DIR}/in.txt
-o out.c
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/in.txt
VERBATIM)
add_library(myLib out.c)
这里增加了一个自定义命令,对生成的out.c执行somTool,然后编译生成的源文件为库的一部分。当in.txt发生改变时该生成规则将再次运行。
栗子,官网给出的Examples: Generation Files说自定义命令可被用来生成源文件。我最终尝试的结果是生成的源文件还必须参与构建目标则add_custom_co

最低0.47元/天 解锁文章
1611





