cmake 构建依赖处理

#cmake 构建依赖处理
##子工程构建依赖
在日常开发过程中一个项目常常会包含多个子项目,而多个子项目之间是存在构建依赖关系的,如下:

ADD_SUBDIRECTORY(base)
ADD_SUBDIRECTORY(core)
ADD_SUBDIRECTORY(application)

对于常规的方式不需要做什么特殊处理,cmake 会根据target_link_libraries 依赖项来做构建顺序处理

##非子项外部依赖
对于一些非常规subdir子项,如在cmake工程种通过源码构建依赖子项 qwt 而qwt是通过qt pro 管理的
无法直接通过ADD_SUBDIRECTORY添加,针对此种情况目前想到两种可行方案
方案一:
execute_process(COMMAND bash generate.sh WORKING_DIRECTORY ${QWT_DIR} )
通过cmakelist 调用execute_process 执行脚本,在执行cmake时就通过命令直接编译,保证后续工程编译是可以直接使用(在cmake 阶段就编译 会造成cmake时间较长)

方案二:
add_custom_target(QWT_CUSTOM COMMAND bash generate.sh WORKING_DIRECTORY Q W T D I R ) a d d e x e c u t a b l e ( {QWT_DIR}) add_executable( QWTDIR)addexecutable({ProName}
“src/*.cpp”
)
add_dependencies(${ProName} QWT_CUSTOM)
通过add_custom_target添加一个任务,然后通过add_dependencies设置目标对象依赖于自定义任务对象,这样就能保证在项目构建阶段可以有先构建自定义任务

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值