概述
- 本文样式环境: win10+cmake 3.18
- 本文将介绍使用CMAKE配置项目输出目录和 LIbrary项目的输出目录
- 本文将介绍 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的官方文档。