aboutsummaryrefslogtreecommitdiff
path: root/docs/manual/Building.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/Building.md')
-rw-r--r--docs/manual/Building.md60
1 files changed, 44 insertions, 16 deletions
diff --git a/docs/manual/Building.md b/docs/manual/Building.md
index aa5c1f4..56a6646 100644
--- a/docs/manual/Building.md
+++ b/docs/manual/Building.md
@@ -1,26 +1,54 @@
# Building
-### Notes (TODO: move)
-* Windows: MSVC compiler is required because of QtWebEngine dependency
-* Windows: Passing the -v or -h parameters creates a dialog box instead of
-writing the output to stdout. This is Qt behaviour.
-* Windows: Use windeployqt.exe to collect the libraries
+## Dependencies
+
+### Libraries
+- [Qt](https://www.qt.io/)
+ - at least 5.9 (codebase should largely work with Qt 5.7)
+ - core, widgets
+ - webengine, webenginewidgets
+- [libconfig](https://hyperrealm.github.io/libconfig/)
+
+### Tools
+* A working compiler
+ - gcc or clang on Linux
+ - msvc on Windows due to QtWebEngine
+* qbs
+ - minimal version 1.8.0
+
+## Compiling
+
+### Create qbs configuration
+Before you can build anything with qbs, you need to set up the compiler
+toolchain.
+
```
-QT_DIR\QT_VER\msvc2015_64\windeployqt.exe build-PROFILE\release\qtbrowser.exe
+qbs setup-toolchains --detect
+qbs setup-qt /usr/bin/qmake-qt5 qt5
```
-* grsecurity: You may need to exception qbs.
-An optional system proxy should be picked up automatically. However, for proxies
-that require a username or password, you need to connect to
-QWebEnginePage::proxyAuthenticationRequired.
+### Compiling
+```
+mkdir ../build
+qbs build -d ../build profile:qt5 release
+```
-Qt WebEngine Widgets uses the Qt Quick Scene Graph to compose the page.
-Therefore, OpenGL support is required.
-And that's also why QML is a dependancy.
+## Packaging
-To use clang with QtCreator, you need to change the compiler in
-Build & Run ยป Kits, not the qbs profile.
+### Source Tarball
+```
+# Get source code from the repository
+git archive --format=tar HEAD > head.tar
+# Compress with lzip
+lzip -9 --force --output=head.tar.lz head.tar
+# Generate checksum
+sha512sum --binary head.tar.lz > head.tar.lz.sha512
+```
+### makepkg
+A PKGBUILD is provided in linux/makepkg/PKGBUILD.
+## Troubleshooting
-[1]: https://doc.qt.io/qbs/index.html
+### Cannot link libconfig
+You don't have pkg-config installed.