首页 > 其他分享 >Qt 基本CMakeLists.txt 文件

Qt 基本CMakeLists.txt 文件

时间:2023-11-19 09:12:26浏览次数:28  
标签:CMakeLists set CMAKE Qt BUNDLE untitled PROJECT VERSION txt

cmake_minimum_required(VERSION 3.5)

project(untitled VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)

set(PROJECT_SOURCES
        main.cpp
        mainwindow.cpp
        mainwindow.h
        mainwindow.ui
)

if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(untitled
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
    )
# Define target properties for Android with Qt 6 as:
#    set_property(TARGET untitled APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
#                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
else()
    if(ANDROID)
        add_library(untitled SHARED
            ${PROJECT_SOURCES}
        )
# Define properties for Android with Qt 5 after find_package() calls as:
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
    else()
        add_executable(untitled
            ${PROJECT_SOURCES}
        )
    endif()
endif()

target_link_libraries(untitled PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)

set_target_properties(untitled PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

install(TARGETS untitled
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

if(QT_VERSION_MAJOR EQUAL 6)
    qt_finalize_executable(untitled)
endif()

 

标签:CMakeLists,set,CMAKE,Qt,BUNDLE,untitled,PROJECT,VERSION,txt
From: https://www.cnblogs.com/RedWetPlace/p/17841590.html

相关文章

  • paho-mqtt api
     ......
  • Qt打包成文件夹包含可执行文件.exe
    这里使用Qt自带命令打包1.以release方式编译源代码。 2.编译成功后项目文件夹下会有一个Release后缀的构建项目,进入该目录,将其中的.exe可执行文件复制到一个单独的文件夹下。 3.选择安装Qt时自带的终端,进入刚才复制的文件夹路径下,这里我使用命令cd/dD:/Qttest才能成......
  • 使用QT来写一个TCPsocket
    我们来了解一下什么是TCP的通讯小知识点,方便后续的理解1.TCP的简单了解由网上搜索的资料可知,tcp传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。tcp通讯一定要经过三次握手才可以连接成功进行通讯;且,tcp通讯只能一对一进行连接;现在大多数通讯都是使用tcp......
  • Python 使用 MQTT
    官方参考文档:https://docs.emqx.com/zh/cloud/latest/connect_to_deployments/python_sdk.html参考文档:https://zhuanlan.zhihu.com/p/187481769发布消息首先定义一个while循环语句,在循环中我们将设置每秒调用MQTT客户端 publish 函数向 /python/mqtt 主题发送消息。......
  • [20231115]如何快速获取AWR中涉及到的表.txt
    [20231115]如何快速获取AWR中涉及到的表.txt--//昨天看了链接:如何快速获取AWR中涉及到的表=>https://www.cnblogs.com/jyzhao/p/how-to-get-tables-in-awr.html--//作者介绍的方法是直接从awr报表抽取from后面的信息,grep写法还很少用.grep-o-i'\bFROM\s\+\(\w\+\)'awr.html......
  • P4115 Qtree4 题解
    P4115看到单点修改,求全局白色的最远距离,可以使用点分树。考虑维护这棵点分树,想想树的直径的dp求法:\(f_u=\max\{f_v+w(u,v)\}\),答案为\(\max(f_v+f_{v'})(v,v'\in\{\text{son}_u\})\),\(\{\text{son}_i\}\)表示\(i\)的孩子集合。这时候维护就十分简单了,对于每个点都......
  • DOORS和Reqtify—需求管理和需求追溯工具
    产品概述    IBMRationalDOORS可实现对整个产品的全生命周期需求管理,覆盖从需求、到设计以及测试阶段,是一款被广泛使用的企业级专业需求管理工具。DOORS可以将项目开发过程中产生的各级需求和与需求相关的文件、网址URL进行链接管理,同时能够对需求进行影响分析。DOORS自......
  • 【C++中cin在Qt输出终端无法手动输入问题解决办法(详细)】
    现象:在Qt中使用cin进行对一个变量z进行输入,然后在用cout对z进行输出,结果没有进行手动输入,程序自动凭空出现类似512,32759等一些数值输出。 解决办法:第一步:在Qt左侧项目栏,在.pro文件中添加一行代码CONFIG+=console 第二步:在项目--运行--勾选在终端中运行(Runinterminal) 配置......
  • 第10章 Qt 对话框--实现浏览器和用户的交流
    Qt对话框--实现浏览器和用户的交流用户登录窗口--升级为模态对话框这里不是转到槽而是点击信号槽方法,转到槽是自己编写代码反应的逻辑浏览器用户登录窗口与主窗口切换导入对应的指针按照需求绑定退出的信号,为上传功能添加标准对话框本章小结......
  • 工业智能网关实现MQTT协议与物联网平台的数据通信
    随着工业物联网技术的不断发展,越来越多的设备和系统需要实现数据共享。MQTT是一种基于发布/订阅模式的轻量级消息传输协议,在物联网各种场景应用广泛,成为许多设备与物联网平台通信的标准协议之一。 物通博联推出的工业智能网关具备多样设备接入、数据采集和传输的边缘计算网关,支持......