#設置庫的路徑,電腦裏有qt4以及qt5,使用qt5時 設置qt5的環境變量(路徑)。
1 set(CMAKE_PREFIX_PATH $ENV{QTDIR}) 2 #設定工程名稱 3 Project(proname) 4 #設置CMake最低版本要求 5 cmake_minimum_required(VERSION 3.6.0) 6 7 #設置須要用到的Qt模塊 8 9 FIND_PACKAGE(Qt5Core)
#包含qt5core的頭文件 10 include_directories(${Qt5Core_INCLUDE_DIRS}) 11 12 #設置Boost靜態庫路徑,電腦中有不一樣版本的boost選擇本身須要的 13 SET(Boost_LIBRARY_DIRS $ENV{BOOST_ROOT16}/lib32-msvc-14.0) 14 SET(Boost_INCLUDE_DIRS $ENV{BOOST_ROOT16}) 15 SET(Boost_LIBRARIES boost_date_time-vc140-mt-1_62.lib boost_date_time-vc140-mt-gd-1_62.lib) 16 #設置Qt包含的靜態庫 17 link_directories($ENV{QTDIR}\\lib) 18 set(QT_LIBRARIES Qt5::Core) 19 20 #一些設置項 21 set(QT_USE_QTSQL TRUE) 22 23 24 #增長宏定義 25 if(WIN32) 26 add_definitions(-D_CRT_SECURE_NO_DEPRECATE) 27 endif(WIN32) 28 29 add_definitions(-DPRONAME) 30 add_definitions(-DQT5) 31 32 33 #定義變量 34 SET(CMAKE_BUILD_TYPE "Debug") 35 set(LIB_DIR ${PROJECT_SOURCE_DIR}/lib) 36 37 38 #定義一些包含路徑 39 SET(ANALYZER_SRC ${PROJECT_SOURCE_DIR}/src) 40 41 #工具鏈 42 if(ARM) 43 SET(CMAKE_CXX_COMPILER arm-linux-g++) 44 endif() 45 46 47 #添加子目錄,進一步Make 4 49 add_subdirectory(src) 50 51 #多核編譯 52 if(WIN32) 53 set_target_properties(proname PROPERTIES COMPILE_FLAGS "/MP") 54 else(WIN32) 55 endif(WIN32)
src目錄下cmakelists.txt
#建立一系列的變量
set(moc_files
1.h
2.h
)linux
set(header_files
1.h
2.h
)
set(source_files
1.cpp
2.cpp
)工具
#頭文件路徑
include_directories(
./
${PROJECT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
)ui
#經過include導入子文件
include("${CMAKE_CURRENT_SOURCE_DIR}/book2/CMakeLists.rules")spa
#moc
QT5_WRAP_CPP(HEADER_MOCS ${moc_files})
SOURCE_GROUP("moc_cxx" FILES ${HEADER_MOCS})code
# HOST連接庫路徑
link_directories(${Boost_LIBRARY_DIRS} )blog
#最終目標文件
add_definitions ("-D${MYDLL}_LIB")
set(LIBRARY_OUTPUT_PATH ${LIB_DIR})
add_library(${MYDLL} SHARED ${moc_files} ${source_files} ${header_files} ${HEADER_MOCS})
target_link_libraries(${MYDLL} ${MYDLL_LINK_LIST}) # MYDLL_LINK_LIST經過set設置的一些lib
#多核編譯
if(WIN32)
set_target_properties(${MYDLl} PROPERTIES COMPILE_FLAGS "/MP") #多核編譯
else(WIN32)
endif(WIN32)get