设置工程的工作路径
#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()