cmake qt5
程序员文章站
2024-01-02 22:58:04
...
项目使用cmake构建,用到了qt5,这里记录下。
qt5的cmake配置脚本
cmake_policy(VERSION 3.9)
project(Demo VERSION 0.1)
cmake_minimum_required(VERSION 3.9)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON) # 让qt5自动为QObject子类生成moc类,即添加信号和槽函数的实现
set(CMAKE_AUTORCC ON) # 让qt5将资源文件 (图片等)编译成字符串,并编译到lib库中
set(CMAKE_PREFIX_PATH $ENV{QTDIR594}) # 设置qt5根目录,必须有
find_package(Qt5 COMPONENTS Core Gui Qml Quick REQUIRED) # 搜索用到的qt5模块
set(HEADERS
appglobal.h
)
set(SOURCES
main.cpp
appglobal.cpp
)
set(RESOURCES
qml.qrc
)
set(QMLS
main.qml
)
add_executable(${PROJECT_NAME} ${HEADERS} ${SOURCES} ${RESOURCES} ${QMLS})
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Qml Qt5::Quick) # 关键一句,不断链接库,还包含对应的qt头文件目录
查找qt模块的功能
这里重点说下查找qt模块的功能,qt5这个功能做得比较好。
find_package(Qt5 COMPONENTS Widgets) 成功执行时,会生成以下cmake变量
Variable | Description |
---|---|
Qt5Widgets_VERSION | Qt5Widgets 版本号 |
Qt5Widgets_LIBRARIES | Qt5Widgets 库路径 |
Qt5Widgets_INCLUDE_DIRS | Qt5Widgets 包含路径 |
Qt5Widgets_DEFINITIONS | Qt5Widgets 定义的宏 |
Qt5Widgets_COMPILE_DEFINITIONS | Qt5Widgets 编译参数 |
Qt5Widgets_FOUND | Qt5Widgets 查找成功标志变量 |
Qt5Widgets_EXECUTABLE_COMPILE_FLAGS | 链接 Qt5Widgets 库的可执行文件的编译参数 |
在这句之后
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
会自动悄悄执行include_directories(Qt5Widgets_INCLUDE_DIRS)
,十分方便。
回头要研究下,qt5怎么写的cmake配置。