【CMake-master】add_custom_command与add_custom_target和ExternalProject_Add

本文介绍了在CMake构建系统中,如何使用add_custom_command创建自定义命令生成文件,并通过add_custom_target定义依赖关系。同时,展示了如何利用ExternalProject_Add来管理外部项目的下载、编译和安装过程,并设置依赖于其他target的构建顺序。
摘要由CSDN通过智能技术生成

add_custom_command与add_custom_target配合使用

前者是添加了自定义命令,通常会有文件输出,其他的target可以依赖它生成的文件;
后者是定义一个自定义的target,可以与target相互依赖;

## 
add_custom_command(
  OUTPUT multi1-out2-copy.txt
  COMMAND ${CMAKE_COMMAND} -E copy multi1-out2.txt multi1-out2-copy.txt
  DEPENDS multi1-out2.txt
  )
add_custom_target(multi1 ALL DEPENDS multi1-out2-copy.txt)

add_custom_target和ExternalProject_Add

ExternalProject_Add用于在构建过程中下载、编译、安装外部项目;

add_custom_target(PreSubdir1
  COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/PreSubdir1.txt
  )
add_library(PreSubdir1Interface INTERFACE)
add_dependencies(PreSubdir1Interface PreSubdir1)

ExternalProject_Add(Subdir1
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Subdir1
  BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Subdir1

  CMAKE_ARGS -DNORMAL_VAR=NORMAL_VALUE -DGENEX_VAR=$<1:GENEX_VALUE>
  LOG_CONFIGURE 1

  BUILD_COMMAND ""
  INSTALL_COMMAND ""

  DEPENDS PreSubdir1Interface
  )


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值