From 31f118d77d3a3765c1868a6407abc26472321be2 Mon Sep 17 00:00:00 2001 From: Fabian Schmidt Date: Fri, 30 Jan 2026 20:34:48 +0100 Subject: [PATCH] Initial commit with empty qt client and empty 'server' --- .gitignore | 4 ++ CMakeLists.txt | 5 ++ CMakePresets.json | 105 +++++++++++++++++++++++++++++++++++ client/CMakeLists.txt | 29 ++++++++++ client/inc/.gitempty | 0 client/inc/logic/.gitempty | 0 client/inc/models/.gitempty | 0 client/inc/ui/mainwindow.h | 19 +++++++ client/lib/.gitempty | 0 client/main.cpp | 10 ++++ client/res/.gitempty | 0 client/src/.gitempty | 0 client/src/logic/.gitempty | 0 client/src/models/.gitempty | 0 client/src/ui/mainwindow.cpp | 9 +++ client/src/ui/mainwindow.ui | 32 +++++++++++ server/CMakeLists.txt | 19 +++++++ server/main.cpp | 2 + 18 files changed, 234 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 CMakePresets.json create mode 100644 client/CMakeLists.txt create mode 100644 client/inc/.gitempty create mode 100644 client/inc/logic/.gitempty create mode 100644 client/inc/models/.gitempty create mode 100644 client/inc/ui/mainwindow.h create mode 100644 client/lib/.gitempty create mode 100644 client/main.cpp create mode 100644 client/res/.gitempty create mode 100644 client/src/.gitempty create mode 100644 client/src/logic/.gitempty create mode 100644 client/src/models/.gitempty create mode 100644 client/src/ui/mainwindow.cpp create mode 100644 client/src/ui/mainwindow.ui create mode 100644 server/CMakeLists.txt create mode 100644 server/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c92327c --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +build/ +compile_commands.json +.cache +.qtcreator diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0bb89df --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.23) +project(chat LANGUAGES CXX) + +add_subdirectory(server) +add_subdirectory(client) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..3004e55 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,105 @@ +{ + "version": 10, + "cmakeMinimumRequired": { + "major": 3, + "minor": 19 + }, + "include": [], + + "configurePresets": [ + { + "name": "base", + "hidden": true, + "generator": "Ninja", + "cacheVariables": { + "CMAKE_EXPORT_COMPILE_COMMANDS": { + "type": "BOOL", + "value": "ON" + }, + "CMAKE_PREFIX_PATH": "$env{HOME}/Qt/6.10.2/gcc_64/lib/cmake" + } + }, + { + "name": "linux-debug", + "displayName": "Linux Debug", + "description": "Debug build for Linux", + "inherits": "base", + "binaryDir": "${sourceDir}/build/Linux_Qt6.10.2_Debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_CXX_FLAGS_DEBUG": "-g -O0" + } }, + { + "name": "linux-release", + "displayName": "Linux Release", + "description": "Release build for Linux", + "inherits": "base", + "binaryDir": "${sourceDir}/build/Linux_Qt6.10.2_Release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_CXX_FLAGS_RELEASE": "-O3 -DNDEBUG" + } + } + ], + + "buildPresets": [ + { + "name": "debug", + "configurePreset": "linux-debug", + "displayName": "Build Debug", + "description": "Build Debug configuration" + }, + { + "name": "release", + "configurePreset": "linux-release", + "displayName": "Build Release", + "description": "Build Release configuration" + } + ], + + "testPresets": [ + { + "name": "test-debug", + "configurePreset": "linux-debug", + "displayName": "Test Debug", + "description": "Run tests on Debug build" + }, + { + "name": "test-release", + "configurePreset": "linux-release", + "displayName": "Test Release", + "description": "Run tests on Release build" + } + ], + + "packagePresets": [ + { + "name": "package-debug", + "configurePreset": "linux-debug", + "displayName": "Package Debug", + "description": "Package Debug build" + }, + { + "name": "package-release", + "configurePreset": "linux-release", + "displayName": "Package Release", + "description": "Package Release build" + } + ], + + "workflowPresets": [ + { + "name": "linux-build-debug", + "steps": [ + { + "type": "configure", + "name": "linux-debug" + }, + { + "type": "build", + "name": "debug" + } + ] + } + ] +} diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt new file mode 100644 index 0000000..4d822e8 --- /dev/null +++ b/client/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.23) +project(chat_client LANGUAGES CXX) + +find_package(Qt6 REQUIRED COMPONENTS Core Widgets) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE SOURCES "src/*.ui" "src/*.cpp" "inc/*.h" "res/*.qrc") + +qt_add_executable(chat_client + WIN32 MACOSX_BUNDLE + main.cpp + ${SOURCES} +) + +target_include_directories(chat_client + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/inc +) + +target_link_libraries(chat_client + PRIVATE + Qt::Core + Qt::Widgets +) diff --git a/client/inc/.gitempty b/client/inc/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/inc/logic/.gitempty b/client/inc/logic/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/inc/models/.gitempty b/client/inc/models/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/inc/ui/mainwindow.h b/client/inc/ui/mainwindow.h new file mode 100644 index 0000000..e92dbc9 --- /dev/null +++ b/client/inc/ui/mainwindow.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +QT_BEGIN_NAMESPACE +namespace Ui { class MainWindow; } +QT_END_NAMESPACE + +class MainWindow : public QMainWindow +{ + Q_OBJECT + + public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + + private: + Ui::MainWindow *ui; +}; diff --git a/client/lib/.gitempty b/client/lib/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/main.cpp b/client/main.cpp new file mode 100644 index 0000000..f1ad478 --- /dev/null +++ b/client/main.cpp @@ -0,0 +1,10 @@ +#include "ui/mainwindow.h" + +#include + +int main(int argc, char *argv[]) { + QApplication a(argc, argv); + MainWindow w; + w.show(); + return a.exec(); +} diff --git a/client/res/.gitempty b/client/res/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/src/.gitempty b/client/src/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/src/logic/.gitempty b/client/src/logic/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/src/models/.gitempty b/client/src/models/.gitempty new file mode 100644 index 0000000..e69de29 diff --git a/client/src/ui/mainwindow.cpp b/client/src/ui/mainwindow.cpp new file mode 100644 index 0000000..02bedd5 --- /dev/null +++ b/client/src/ui/mainwindow.cpp @@ -0,0 +1,9 @@ +#include "ui/mainwindow.h" +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent), ui(new Ui::MainWindow) { + ui->setupUi(this); +} + +MainWindow::~MainWindow() { delete ui; } diff --git a/client/src/ui/mainwindow.ui b/client/src/ui/mainwindow.ui new file mode 100644 index 0000000..dc457b7 --- /dev/null +++ b/client/src/ui/mainwindow.ui @@ -0,0 +1,32 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + + 0 + 0 + 800 + 22 + + + + + + + + + diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt new file mode 100644 index 0000000..526ccfa --- /dev/null +++ b/server/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.23) +project(chat_server LANGUAGES CXX) + +find_package(protobuf CONFIG REQUIRED) +find_package(gRPC CONFIG REQUIRED) + +file(GLOB_RECURSE SOURCES "src/*.ui" "src/*.cpp" "inc/*.h" "res/*.qrc") + +add_executable(chat_server + main.cpp + ${SOURCES} +) + +target_link_libraries(chat_server + PRIVATE + protobuf::libprotobuf + gRPC::grpc + gRPC::grpc++ +) diff --git a/server/main.cpp b/server/main.cpp new file mode 100644 index 0000000..72c4403 --- /dev/null +++ b/server/main.cpp @@ -0,0 +1,2 @@ + +int main(int argc, char *argv[]) { return 0; }