大家使用cmake编译完成后,一般需要拷贝出来,部署到其他设备。平时大家都是自己手动执行命令tar,但是对一个码农来说,能自动就绝不手动。不过遗憾的是自己搜索良久(可能自己搜索技巧不高),都没能找到合适的方案。自己花了大半天才解决,具体的方式如下:
PROJECT(ABC)
...
add_custom_target(
ABC_Tar ALL
DEPENDS ABC
)
add_custom_command(TARGET ABC_Tar POST_BUILD
COMMAND tar -zcvf ${OUTPUTDIR}/${PLATFROMSTR}/ABC.tar.gz -C ${OUTPUTDIR}/${PLATFROMSTR}/ ABC
)
有几个地方需要注意的:
1、“ABC”为原本的项目;
2、“add_custom_target”新建一个项目为“ABC_Tar”,名字可以随便命名;
3、“add_custom_target”参数中“DEPENDS ABC”非常重要,一定要设置这个依赖,否则会导致可执行文件还未生成,就执行了tar命令;
4、“add_custom_command”执行tar命令时,由于当前目录没有与被压缩目录同级,所以参数中带了绝对路径,要解决这个问题,需要在“${OUTPUTDIR}/${PLATFROMSTR}/ ABC”中间添加一个空格。