cmake 入門實戰
cmake 手冊詳解
兩個自己寫的cmakelists.txt用到了常用的編譯功能
# cmake 最低版本號要求
cmake_minimum_required (version 2.8)
#指定c編譯器
set(cmake_c_compiler "arm-none-linux-gnueabi-gcc")
#指定c++交叉編譯器
set(cmake_cxx_compiler "arm-none-linux-gnueabi-g++")# 標頭檔案
include_directories(/mnt/hgfs/share/build_libeventarm/include)
# 庫路徑
link_directories(/mnt/hgfs/share/build_libeventarm/lib)
# 專案資訊
project (demo)
#指定程式版本
set (demo_version_major 1)
set (demo_version_minor 0)
# 指定生成目標
add_executable(demo main.cpp)
# 引用庫
target_link_libraries(demo event)
# 指定 mathfunctions 庫的安裝路徑
#install (targets mathfunctions destination bin)
#install (files mathfunctions.h destination include)
# 指定安裝路徑
install (targets demo destination bin)
#install (files "$/config.h" destination include)
# 構建乙個 cpack 安裝包
include (installrequiredsystemlibraries)
#set (cpack_resource_file_license "$/license.txt")
set (cpack_package_version_major "$")
set (cpack_package_version_minor "$")
include (cpack)
#生成二進位制安裝包
#cpack -c cpackconfig.cmake
#生成原始碼安裝包
#cpack -c cpacksourceconfig.cmake
#make 最低版本號要求
cmake_minimum_required (version 2.8)
#指定c編譯器
set(cmake_c_compiler "gcc")
#指定c++編譯器
set(cmake_cxx_compiler "g++")
#支援gdb
#set(cmake_build_type "debug")
#set(cmake_cxx_flags_debug "$env -o0 -wall -g -ggdb")
#set(cmake_cxx_flags_release "$env -o3 -wall")
# 標頭檔案
#include_directories(/mnt/hgfs/share/build_libeventarm/include)
# 庫路徑
#link_directories(/mnt/hgfs/share/build_libeventarm/lib)
# 專案資訊
project (demo)
# 查詢當前目錄下的所有原始檔
# 並將名稱儲存到 dir_srcs 變數
aux_source_directory(. dir_srcs)
# 新增 src 子目錄
add_subdirectory(../../src obj)
# 指定生成目標
add_executable(demo main.cpp)
# 新增鏈結庫
target_link_libraries(demo src)
# 加入乙個配置標頭檔案,用於處理 cmake 對原始碼的設定
configure_file (
"$/config.h.in"
"$/config.h"
)option (use_mydef "use provided define" on)
if (use_mydef)
message(status "use my define")
endif (use_mydef)
# 啟用測試
enable_testing()
add_test (test_usemydef demo)
set_tests_properties (test_usemydef properties pass_regular_expression "run testvalueinit.+ test successfully")
add_test (test_usemydef1 demo)
set_tests_properties (test_usemydef1 properties pass_regular_expression "run testassignment\\(\\) test successfully")
#rm -rf cmakefiles cmakecache.txt makefile cmake_install.cmake demo
#rm -rf obj/*
-----另乙個資料夾的cmakelists.txt
# 查詢當前目錄下的所有原始檔
# 並將名稱儲存到 dir_lib_srcs 變數
aux_source_directory(. dir_lib_srcs)
# 生成鏈結庫
add_library (src $)
Cmake 構建程式
cmake 是乙個跨平台的自動化建構系統,它使用乙個名為 cmakelists.txt 的檔案來描述構建程式,可以產生標準的構建檔案,如 unix 的 makefile。cmakelists.txt 需要手工編寫,也可以通過編寫指令碼進行半自動的生成。cmake 提供了比 autoconfig 更簡...
Cake 0 C Make自動化構建 簡介
cake是c make的縮寫,是乙個基於c dsl的自動化構建系統。它可以用來編譯 複製檔案以及資料夾,執行單元測試,壓縮檔案以及構建nuget包等等。熟悉大名鼎鼎的make的小夥伴,應該已經知道cake大致是個什麼樣的工具了,cake具有以下幾個特點 方便編寫 使用基於c 的dsl,非常易於編寫自...
cmake構建qt工程
如何選擇?using cmake to build qt projects 一文中說 儘管如此,如果簡單qt的工程都不知道怎麼用 cmake 構建,複雜的工程,就更不知道如何使用 cmake 了。還是從簡單的學起吧 include include qdebug int main int argc,c...