CMake自动化生成项目

设置工程的工作路径

#TestTool为工程项目名称
set_target_properties(${TestTool} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/${youset_dir}")
set_target_properties(${TestTool} PROPERTIES VS_DEBUGGER_COMMAND "${CMAKE_SOURCE_DIR}/${youset_dir}/your.exe")

引入第三方的CMake的. 例如使用不同平台的交叉编译链

include(Config.cmake) #引入第三方的cmake文件

引入已经写好的cmake文件,Config.make例子。

get_filename_component(DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)

set(INCLUDE_DIR ${DIR}/include/)

set(LIB_DIR ${DIR}/lib/win32)
set(relative_dll_path lib/win32/my.dll)

#cmake的函数实现
function(CopyRuntimeFiles dst)
	file(COPY ${DIR}/${relative_dll_path} DESTINATION ${dst}) #进行文件的拷贝	
endfunction(CopyRuntimeFiles)

Cmake文件远程下载 Fetch.cmake

set(DEP_REPO http://192.168.1.100)  # 通过hosts文件 配置依赖库的获取地址 填写三方库地址
include(FetchContent) #引入远程下载库

macro(AddFetchLib addr name)
    FetchContent_Declare(
        ${name}
        URL   ${addr}/${name}.7z  #压缩方式为7z
    )
    FetchContent_GetProperties(${name})
    if(NOT ${name}_POPULATED)    # if 没有安装了第三方库 
        FetchContent_Populate(${name}) # 安装一下, 就是获取一下对应的变量
    endif()
    include(${${name}_SOURCE_DIR}/Config.cmake)
endmacro(AddFetchLib)

function(CopyLibFileToSource name src) 
    FetchContent_GetProperties(${name})
    file(COPY ${${name}_SOURCE_DIR}/${src} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Run_${PNAME})
endfunction()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值