Files
MyChat_Client/ChatClient/CMakeLists.txt

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
)