首页 > 其他分享 >Qt项目中CMakeLists.txt文件

Qt项目中CMakeLists.txt文件

时间:2023-11-19 15:34:12浏览次数:34  
标签:src CMakeLists set CMAKE Qt LIST dir txt DIR

cmake_minimum_required(VERSION 3.5)

project(testName 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(Qt5 COMPONENTS REQUIRED Widgets Sql Charts Network)



set(TEST_DIR test)
file(GLOB HEAD_TESTS "${TEST_DIR}/*.h")
aux_source_directory(${TEST_DIR} SRC_TESTS)

set(RES_QRC res/res.qrc)

set(SUB_DIRS utils model view)
foreach(subDir ${SUB_DIRS})
    include_directories(${subDir})
    file(GLOB HEAD_LIST "${subDir}/*.h")
    aux_source_directory(${subDir} SRC_LIST)
    set(PROJECT_SOURCES ${PROJECT_SOURCES} ${SRC_LIST} ${HEAD_LIST})
endforeach()

#set(BOOST_DIR "/home/wc/work/junke_src/vendor/boost_1_72_0"Qt5::Charts CACHE PATH "boost path")
include_directories("/home/wc/work/junke_src/vendor/boost_1_72_0")


link_libraries(Qt5::Widgets Qt5::Sql  Qt5::Charts Qt5::Network)
link_libraries(curl)

add_compile_definitions(APP_NAME="${PROJECT_NAME}")

add_executable(AutoTest ${PROJECT_SOURCES} ${RES_QRC} ${HEAD_TESTS} ${SRC_TESTS})
target_compile_definitions(AutoTest PUBLIC INCLUDE_TESTS)
#target_link_libraries(AutoTest PRIVATE collabrotive)

add_executable(SchemeEdit ${PROJECT_SOURCES} ${RES_QRC} main.cpp)
#target_link_libraries(TestName PRIVATE collabrotive)

macro(SUBDIRLIST result curdir)
    file(GLOB children RELATIVE ${curdir} ${curdir}/*)
    set(dirlist "")
    foreach(child ${children})
        if(IS_DIRECTORY ${curdir}/${child})
            LIST(APPEND dirlist ${child})
        endif()
    endforeach()
    set(${result} ${dirlist})
endmacro()

#SUBDIRLIST(SRC_DIR_LIST ${CMAKE_CURRENT_SOURCE_DIR})
#FOREACH(src_dir ${SRC_DIR_LIST})
#    IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${src_dir}/CMakeLists.txt")
#        add_subdirectory(${src_dir})
#        include_directories(${src_dir})
##    ENDIF()
##ENDFOREACH()

SUBDIRLIST(SRC_DIR_LIST ${CMAKE_CURRENT_SOURCE_DIR})
FOREACH(src_dir ${SRC_DIR_LIST})
    IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${src_dir}/CMakeLists.txt")
        add_subdirectory(${src_dir})
        include_directories(${src_dir})
    ENDIF()
ENDFOREACH()

 

标签:src,CMakeLists,set,CMAKE,Qt,LIST,dir,txt,DIR
From: https://www.cnblogs.com/RedWetPlace/p/17842117.html

相关文章

  • Qt 基本CMakeLists.txt 文件
    cmake_minimum_required(VERSION3.5)project(untitledVERSION0.1LANGUAGESCXX)set(CMAKE_AUTOUICON)set(CMAKE_AUTOMOCON)set(CMAKE_AUTORCCON)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIREDON)find_package(QTNAMESQt6Qt5REQUIREDCOM......
  • 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对话框--实现浏览器和用户的交流用户登录窗口--升级为模态对话框这里不是转到槽而是点击信号槽方法,转到槽是自己编写代码反应的逻辑浏览器用户登录窗口与主窗口切换导入对应的指针按照需求绑定退出的信号,为上传功能添加标准对话框本章小结......