.vscode | ||
images | ||
include | ||
misc | ||
src | ||
.gitignore | ||
.gitlab-ci.yml | ||
build.sh | ||
build_debug.sh | ||
build_prod.sh | ||
CMakeCPack.cmake | ||
CMakeLists.txt | ||
deps.sh | ||
doxygen.conf | ||
LICENSE | ||
README.md | ||
winegui.code-workspace |
Wine GUI
Finally, an user-interface friendly WINE (A compatibility layer capable of running Windows applications under Linux) Manager.
User-interface is created by using GTK+ (gtkmm c++-interface) and C++ code.
Development
Requirements
Dependencies should be met before build:
- gcc/g++ (v8.3 or later)
- cmake (v3.13 or later)
- ninja-build
- libgtkmm-3.0-dev (implicit dependency with libgtk-3-dev obviously)
- pkg-config
Optionally:
- doxygen
- graphviz
- rpm
Hint: You could execute ./deps.sh
script for Debian based systems (incl. Ubuntu and Linux Mint) in order to get all the dependencies installed automatically.
Build
Run: ./build.sh
Or execute: mkdir -p build && cd build && cmake -GNinja .. && ninja
Run
Execute within the build directory: ninja run
Or:
./build/bin/winegui
Rebuild
Cmake is only needed once, after that you can often use:
ninja
Clean the build via: ninja clean
Hint: Run ninja help
for all available targets.
Debug
You can use the helper script: ./build_debug.sh
Start debugging in GDB (GNU Debugger):
gdb -ex=run build_debug/bin/winegui
Production
For production build and DEB file package, you can run: ./build_prod.sh
Or use the cmake -DCMAKE_BUILD_TYPE=Release
.
Coding standard
We follow the Google C++ Style Guide.
CI
For Contious Integration on the Gitlab server, we use our Dockerfile as input for danger89/gtk3-docker-cmake-ninja
image.
This image is hosted on Dockerhub, and managed by danger89.
A helper script can be used: ./upload_docker_image.sh
from within the misc
directory, after successfully identified via docker login --username=<username>
.
Coding in the Cloud
Cloud IDE
You may use our Cloud IDE for developing remotely.
How-to develop on a remote server
Execute the following command to copy the binary from the Cloud IDE (Coder) to your local machine & execute WineGUI:
scp melroy@server.melroy.org:/media/data/coder_projects/project/winegui/build/bin/winegui ~ && ~/winegui
Note #1: Copy your local ~/.ssh/id_ed25519.pub and add it to the remote machine file: /home/melroy/.ssh/authorized_keys
Note #2: Requires the libgtkmm-3.0-1v5
library to be installed on the local machine.