概述
-
- 本文樣式環境: 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的官方文檔。