Qt工程CMAKE文件模板

项目根目录CMakeList.txt

CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
PROJECT(xweather VERSION 1.0.2 LANGUAGES CXX)
ADD_SUBDIRECTORY(src)

src目录CMakeList.txt

SET(CMAKE_CXX_STANDARD 11)

SET(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTORCC ON)

#SET(Qt5_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5")
#SET(Qt5Core_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5Core")
#SET(Qt5Gui_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5Gui")
#SET(Qt5Widgets_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5Widgets")
#SET(Qt5WebEngineWidgets_DIR "${CMAKE_PREFIX_PATH}/cmake/Qt5WebEngineWidgets")
#FIND_PACKAGE失败则需要设置CMAKE_PREFIX_PATH,或者设置上述路径
SET(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/cmake")

FIND_PACKAGE(Qt5 COMPONENTS Core REQUIRED)
FIND_PACKAGE(Qt5 COMPONENTS Gui REQUIRED)
FIND_PACKAGE(Qt5 COMPONENTS Widgets REQUIRED)
FIND_PACKAGE(Qt5 COMPONENTS Network REQUIRED)

#使用pgk-config配置第三方库
FIND_PACKAGE(PkgConfig)
PKG_CHECK_MODULES(3RD_LIBS REQUIRED freetype2 fontconfig)
INCLUDE_DIRECTORIES(${3RD_LIBS_fontconfig_INCLUDEDIR})
INCLUDE_DIRECTORIES(${3RD_LIBS_freetype2_INCLUDEDIR}/freetype2)

#遍历CMAKE_CURRENT_SOURCE_DIR及其子目录中源文件,添加到SRC_FILES中
FILE(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.h)
#AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SRC_FILES)
#FOREACH(FILE IN LISTS SRC_FILES)
#    MESSAGE(STATUS ${FILE})
#ENDFOREACH(FILE)

#SET(SRC_FILES main.cpp MainDialog.cpp MainDialog.h)

#已经使用了SET(CMAKE_AUTORCC ON),可以不使用QT5_ADD_RESOURCES, qrc文件最终也是被编译为CPP文件。
#QT5_ADD_RESOURCES(QRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/resource/res.qrc)
SET(QRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/resource/res.qrc)

#将编译产生的可执行文件或库文件存放到指定目录下,不包含编译生成的中间文件
#SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#在哪里定义ADD_EXECUTABLE或者ADD_LIBRARY,如果需要改变存放路径,就在哪里加入上述定义

ADD_EXECUTABLE(xweather ${SRC_FILES} ${QRC_FILES})
TARGET_LINK_LIBRARIES(xweather Qt5::Core Qt5::Widgets Qt5::Network ${3RD_LIBS_fontconfig_LIBRARIES} ${3RD_LIBS_freetype2_LIBRARIES})

#INSTALL指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等
#CMAKE_INSTALL_PREFIX默认值为/usr/local
SET(CMAKE_INSTALL_PREFIX /usr)
#INSTALL(TARGETS myrun mysharedlib mystaticlib
#        RUNTIME DESTINATION bin #可执行二进制myrun安装到${CMAKE_INSTALL_PREFIX}/bin目录
#        LIBRARY DESTINATION lib #动态库libsharedmylib安装到${CMAKE_INSTALL_PREFIX}/lib目录
#        ARCHIVE DESTINATION libstatic) #静态库 libmystaticlib 安装到${CMAKE_INSTALL_PREFIX}/libstatic目录
INSTALL(TARGETS xweather RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

#普通文件,比如desktop文件,程序icon,脚本文件,以及目录等,都可以用INSTALL安装到指定目录。
INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/xweather.desktop
    DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/xweather.png
    DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值