proton-bridge/internal/frontend/bridge-gui
Xavier Michelon 5dab4422e9
Other: added C/C++ header template file (*.h.in) type to missing_license.sh script.
2023-01-03 17:42:53 +01:00
..
bridge-gui Other: added C/C++ header template file (*.h.in) type to missing_license.sh script. 2023-01-03 17:42:53 +01:00
bridge-gui-tester Other: Update copyright year 2023-01-02 11:09:11 +01:00
bridgepp Other: Update copyright year 2023-01-02 11:09:11 +01:00
BridgeSetup.cmake Other: catalina build. 2022-12-07 09:56:21 +01:00
CMakeLists.txt Other: grab version number from top-level Makefile. 2022-09-01 13:31:10 +02:00
FindQt.cmake GODT-1942: Use qmake to find the QT6DIR 2022-10-17 17:56:18 +02:00
README.md Other: removed reference to internal documentation. 2022-09-01 13:23:12 +02:00

README.md

bridge-gui

bridge-gui is the graphical user interface for Bridge. It's a C++ Qt application that communicates with the bridge executable via gRPC remote procedure call, on a local-only TLS-secured connection.

Components

bridge-gui consists in 3 components:

  • bridge-gui: The Bridge-GUI application itself. It's a QML Qt application that implements the bridge gRPC service to communicate and interact with the bridge application written in Go.
  • bridge-gui-tester: A Qt widgets test application that offers a dummy gRPC server implementing the Bridge gRPC service. It can be used as a debugging and development tool, as it can simulate the server side (bridge) portion of the gRPC service.
  • bridgepp: bridgepp (for bridge++) is a C++ static library that contains the code shared by bridge-gui and bridge-gui-tester.

Bridge gRPC service

The bridge gRPC service that allows communications between bridge-gui, and the bridge Go application (or bridge-gui-tester) is defined in ../grpc/bridge.proto.

Supported platforms

bridge-gui runs on the same platforms as the bridge app:

  • Linux x64.
  • macOS x64 and Apple Silicon.
  • Windows x64.

Requirements:

  • A C++ development toolchain (GCC/Clang/ MSVC, CMake, Ninja). An easy way to get all the needed tools is to use a modern IDE such as CLion, Qt Creator or Visual Studio Code that will check and install or use their bundled versions of the tools.
  • Qt 6. Use the online installer to install the latest stable release of Qt for your platform and compiler.

First build

bridge-gui uses vcpkg, Microsoft multi-platform C/C++ dependency manager to get the source code and build gRPC and its dependencies (protobuf, zlib, ...). vcpkg is managed as a git submodule in extern/vcpkg,relative to the root of the bridge source tree. A pair of scripts is provided to perform the initialization of vcpkg, the retrieval and compilation of gRPC and a first build of the bridge-gui project components:

  • build.sh: a shell script to use on macOS and Linux.
  • build.ps1: a PowerShell script for Windows.