cmake指定程序输出目录和库文件输出目录和拷贝文件

时间:2024-04-07 00:07:24

概述

    1. 本文样式环境: win10+cmake 3.18
    1. 本文将介绍使用CMAKE配置项目输出目录和 LIbrary项目的输出目录
    1. 本文将介绍 cmake的file函数的基础用法之拷贝文件

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

开始之前

我定义了如下变量, 用作保存x64和x86不同设置

# 64位
if (CMAKE_CL_64)
# 设置 可执行程序输出目录
set(publish_bin_debug ${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/bin/debug64)
set(publish_bin_release ${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/bin/release64) # 设置库文件输出目录
set(publish_lib_debug ${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/lib/debug64)
set(publish_lib_release ${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/lib/release64) set(PROJECT_NAME ${PROJECT_NAME}64)
# 32
else()
# 设置 可执行程序输出目录
set(publish_bin_debug ${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/bin/debug)
set(publish_bin_release ${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/bin/release) # 设置库文件输出目录
set(publish_lib_debug ${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/lib/debug)
set(publish_lib_release ${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/lib/release)
endif()

1.设置程序输出目录

如果你的项目是动态库,比如 dll, 或者你的项目是 可执行程序, 下面的设置,将输出到指定的目录。

		# 指定可执行程序输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${publish_bin_debug})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${publish_bin_release})

2. 设置库文件输出目录

		# 指定 库文件输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${publish_lib_debug})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RLEASE ${publish_lib_release})

3. 文件拷贝

动态库项目,咱们做好后都会发布 头文件和库文件和动态库三类文件,之前,

  • windwos,我使用批处理bat执行文件拷贝到指定目录
  • Linux, 使用shell完成文件拷贝。

    有了 CMake以后,直接使用file 实现文件拷贝,简直方便的不要不要的。

    一个简单的例子:
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/include/udp/udp_interface.h DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/include)

COPY的语法是: file(COPY <填写你要拷贝的文件> DESTINATION <填写你要的输出目录>)

更多用法,请参考 CMake的官方文档。