mirror of
https://gitee.com/Zhaoxin59/my-chat_-client.git
synced 2026-02-13 16:41:48 +08:00
141 lines
3.1 KiB
CMake
141 lines
3.1 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(ClientChat 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(Qt6 COMPONENTS
|
|
Core
|
|
Protobuf
|
|
Widgets
|
|
Network
|
|
WebSockets
|
|
Multimedia
|
|
QUIET)
|
|
|
|
set(QT_VERSION_MAJOR 6)
|
|
|
|
# 设置 UI 文件的搜索路径
|
|
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/ui)
|
|
|
|
# proto文件
|
|
file(GLOB PB_FILES
|
|
proto/*.proto
|
|
)
|
|
|
|
# 源文件
|
|
# file(GLOB PROJECT_SOURCES
|
|
# include/model/*.h src/model/*.cpp
|
|
# include/network/*.h src/network/*.cpp
|
|
# include/*.h src/*.cpp
|
|
# ui/*.ui
|
|
# resource/qrc/*.qrc
|
|
# )
|
|
|
|
# 显式列出源文件
|
|
set(PROJECT_SOURCES
|
|
src/model/datacenter.cpp
|
|
src/network/netclient.cpp
|
|
src/addfrienddialog.cpp
|
|
src/choosefrienddialog.cpp
|
|
src/groupsessiondetailwidget.cpp
|
|
src/historymessagewidget.cpp
|
|
src/loginwidget.cpp
|
|
src/main.cpp
|
|
src/mainwidget.cpp
|
|
src/messageeditarea.cpp
|
|
src/messageshowarea.cpp
|
|
src/phoneloginwidget.cpp
|
|
src/selfinfowidget.cpp
|
|
src/sessiondetailwidget.cpp
|
|
src/sessionfriendarea.cpp
|
|
src/soundrecorder.cpp
|
|
src/toast.cpp
|
|
src/userinfowidget.cpp
|
|
src/verifycodewidget.cpp
|
|
)
|
|
|
|
# 显式列出头文件
|
|
set(PROJECT_HEADERS
|
|
include/model/data.h
|
|
include/model/datacenter.h
|
|
include/network/netclient.h
|
|
include/addfrienddialog.h
|
|
include/choosefrienddialog.h
|
|
include/debug.h
|
|
include/groupsessiondetailwidget.h
|
|
include/historymessagewidget.h
|
|
include/loginwidget.h
|
|
include/mainwidget.h
|
|
include/messageeditarea.h
|
|
include/messageshowarea.h
|
|
include/phoneloginwidget.h
|
|
include/selfinfowidget.h
|
|
include/sessiondetailwidget.h
|
|
include/sessionfriendarea.h
|
|
include/soundrecorder.h
|
|
include/toast.h
|
|
include/userinfowidget.h
|
|
include/verifycodewidget.h
|
|
)
|
|
|
|
# 显式列出 UI 文件
|
|
set(PROJECT_FORMS
|
|
ui/mainwidget.ui
|
|
)
|
|
|
|
# 显式列出资源文件
|
|
set(PROJECT_RESOURCES
|
|
resource.qrc
|
|
)
|
|
|
|
if(ANDROID)
|
|
# Android 平台:附加 Android 可部署资源
|
|
qt_add_executable(ClientChat
|
|
MANUAL_FINALIZATION
|
|
# ${PROJECT_SOURCES}
|
|
${PROJECT_SOURCES}
|
|
${PROJECT_HEADERS}
|
|
${PROJECT_FORMS}
|
|
${PROJECT_RESOURCES}
|
|
)
|
|
|
|
# 指定自定义的 Android 部署目录
|
|
# set_property(TARGET ClientChat APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
|
|
else()
|
|
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
|
|
|
qt_add_executable(ClientChat
|
|
MANUAL_FINALIZATION
|
|
# ${PROJECT_SOURCES}
|
|
${PROJECT_SOURCES}
|
|
${PROJECT_HEADERS}
|
|
${PROJECT_FORMS}
|
|
${PROJECT_RESOURCES}
|
|
)
|
|
|
|
qt_add_protobuf(ClientChat PROTO_FILES ${PB_FILES})
|
|
endif()
|
|
endif()
|
|
|
|
# 添加包含目录
|
|
target_include_directories(ClientChat PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/model
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/network
|
|
)
|
|
|
|
# 链接动态库
|
|
target_link_libraries(ClientChat PRIVATE
|
|
Qt6::Core
|
|
Qt${QT_VERSION_MAJOR}::Widgets
|
|
Qt6::Network
|
|
Qt6::WebSockets
|
|
Qt6::Multimedia
|
|
) |