189 lines
5.7 KiB
Markdown
189 lines
5.7 KiB
Markdown
# Building
|
|
|
|
Here you can find build instructions for Kristall.
|
|
|
|
## Requirements
|
|
|
|
- Qt 5.9 or higher with `widgets` and `network` modules
|
|
|
|
## Build
|
|
|
|
### *nix
|
|
|
|
There's a small `Makefile` provided that does all necessary steps and creates a build directory, then copies the build artifact from the build directory. Just do `make` in the root directory, it should work.
|
|
|
|
Or you can use the usual Qt5 build process:
|
|
|
|
```sh
|
|
mkdir build
|
|
cd build
|
|
qmake ../src/kristall.pro
|
|
make
|
|
```
|
|
|
|
#### Notes for OpenBSD
|
|
- It seems like Qt wants `libzstd.so.3.1` instead of `libzstd.so.3.2`. Just symlink that file into the build directory
|
|
- Use `make` and not `gmake` to build the project.
|
|
|
|
#### Notes on FreeBSD
|
|
- Kristall can't be used with LibreSSL, but requires OpenSSL (probably because of Qt)
|
|
- Required packages
|
|
- `qt5`
|
|
- `make`
|
|
- `git` - optional, for cloning from CLI
|
|
- Additionally, the following must be exported for qmake: `export QMAKESPEC=freebsd-clang`
|
|
|
|
#### Notes for Ubuntu and Debian
|
|
- Supported Versions:
|
|
- Ubuntu: 18.04, 20.04
|
|
- Debian: 10, 11, 12 (TBA)
|
|
|
|
- Unsupported Versions
|
|
- Ubuntu: 16.04
|
|
- Debian: 9
|
|
|
|
- Required packages
|
|
- `qt5-default`
|
|
- `qt5-qmake`
|
|
- `qttools5-dev-tools`
|
|
- `qtmultimedia5-dev`
|
|
- `libqt5svg5-dev`
|
|
- `libssl-dev`
|
|
- `make`
|
|
- `g++`
|
|
|
|
- Additional packages (to use dynamic libraries)
|
|
- `libcmark-dev`
|
|
- `libgumbo-dev`
|
|
|
|
#### Notes for Fedora 32 (and probably other recent versions)
|
|
In the small `Makefile` mentioned above, comment out the line:
|
|
|
|
* `QMAKE_COMMAND := qmake`
|
|
|
|
And uncomment the line:
|
|
* `# QMAKE_COMMAND := /usr/bin/qmake-qt5`
|
|
|
|
This is because Fedora has a different naming scheme for the qmake executable.
|
|
|
|
- Key required packages
|
|
- `qt5-qtbase`
|
|
- `qt5-qtbase-devel`
|
|
- `qt5-qtmultimedia-devel`
|
|
- `qt5-qtsvg-devel`
|
|
- `qt5-linguist`
|
|
- `ccache-3.7.7-1.fc32.x86_64`
|
|
- `make`
|
|
- `openssl-devel`
|
|
- And the packages they depend on
|
|
|
|
#### Notes for Manjaro/Arch
|
|
- Required packages
|
|
- `qt5-base`
|
|
- `qt5-multimedia`
|
|
- `qt5-svg`
|
|
- `openssl` or `libressl`
|
|
- `qt5-tools`
|
|
|
|
#### Notes on void linux
|
|
- set env variable `QT_SELECT=5`
|
|
|
|
#### Notes on alpine linux
|
|
- Required packages for 0.3
|
|
- `qt5-qtbase-dev`
|
|
- `qtchooser`
|
|
- `qt5-qtsvg-dev`
|
|
- `qt5-qtmultimedia-dev`
|
|
- Additionally for current state (38b353e)
|
|
- `qt5-qttools-dev`
|
|
- `bash`
|
|
|
|
#### Windows (MinGW)
|
|
Install Qt via the Qt installer. Install the following components:
|
|
|
|
**Required:**
|
|
- `Qt/Qt 5.15.0/MinGW 8.1.0 64-bit`
|
|
- `Qt/Developer and Designer Tools/MinGW 8.1.0 64 bit`
|
|
- `Qt/Developer and Designer Tools/OpenSSL 64-bit binaries`
|
|
**Optional:**
|
|
- `Qt/Developer and Designer Tools/Qt Creator 4.12.3 CDB Debugger Support`
|
|
- `Qt/Developer and Designer Tools/Debugging Tools for Windows`
|
|
- `Qt/Developer and Designer Tools/Qt Creator 4.12.3 CDB Debugger Support`
|
|
- `Qt/Developer and Designer Tools/OpenSSL source code`
|
|
|
|
If you didn't istall Qt to `C:\Qt`, you have to adjust the paths in `src/kristall.pro` for the `win32-g++` adjustments to the path you used.
|
|
|
|
Then open `src/kristall.pro` with Qt creator to compile the project. Alternatively you can use `ci\build-and-deploy.bat`, but note that this script tries to deploy the file to `random-projects.net`, so this will fail in the end.
|
|
|
|
**Troubleshouting:**
|
|
If you get an error message that `MSVCR100.dll` is missing, you may need to install the [Microsoft C++ Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=14632).
|
|
|
|
**Troubleshouting:**
|
|
*QtCreator says the exe crashed when starting.* This happens when you are missing the OpenSSL dlls. Copy them from `C:\Qt\Tools\OpenSSL\Win_x64\bin\libcrypto-1_1-x64.dll` and `C:\Qt\Tools\OpenSSL\Win_x64\bin\libssl-1_1-x64.dll` to the debug/release folder of your build. Then the exe should be starting.
|
|
|
|
#### Windows MSVC (not up to date)
|
|
|
|
Compile OpenSSL with the following steps:
|
|
- Install [Perl](https://www.perl.org/get.html) (either ActiveState or Strawberry)
|
|
- Install [NASM](https://www.nasm.us/)
|
|
- Add both to your PATH
|
|
- Clone [OpenSSL](https://github.com/openssl/openssl)
|
|
- Open a Visual Studio Developer Command Prompt (or a command prompt that has ran vcvarsall.bat). You will need Administrator privileges for the install step
|
|
- In the OpenSSL root directory, run `perl Configure VC-WIN32` if compiling for 32 bit, `perl Configure VC-WIN64A` for 64 bit
|
|
- Run `nmake`
|
|
- Run `nmake install` to install OpenSSL in `C:\Program Files\OpenSSL`
|
|
|
|
Use QtCreator to build `./src/kristall.pro` with default settings.
|
|
|
|
#### macOS
|
|
|
|
1. Run `brew install qt@5 openssl` to install the `qt` and `openssl` packages with [Homebrew](https://brew.sh/).
|
|
2. Run `brew link qt5` to enable the use of `qmake`
|
|
3. Run `make build/kristall` to build `kristall.app` in the `build` directory.
|
|
|
|
#### Haiku
|
|
|
|
1. Install the following packages with `pkgman`:
|
|
- `qt5`
|
|
- `qt5_devel`
|
|
- `qt5_tools`
|
|
- `libiconv_devel`
|
|
- `openssl_devel` (should be preinstalled)
|
|
2. Use `make` to build the executable
|
|
|
|
#### Haiku x86
|
|
|
|
1. Install the following packages with `pkgman`:
|
|
- `qt5_x86`
|
|
- `qt5_x86_devel`
|
|
- `qt5_x86_tools`
|
|
- `libiconv_x86_devel`
|
|
- `openssl_x86_devel` (should be preinstalled)
|
|
2. run `setarch x86`
|
|
3. Use `make` to build the executable
|
|
|
|
## Manual Installation
|
|
|
|
### Unix / XDG
|
|
|
|
The provided desktop file and additional mime types (along with the text/gemini) can be installed into the local system
|
|
```sh
|
|
cp Kristall.desktop ~/.local/share/applications/kristall.desktop
|
|
cp kristall-mime-info.xml ~/.local/share/mime/packages/kristall-mime-info.xml
|
|
update-desktop-database ~/.local/share/applications
|
|
update-mime-database ~/.local/share/mime
|
|
```
|
|
|
|
### macOS
|
|
|
|
Copy `kristall.app` from the `build` directory to `/Applications`.
|
|
|
|
### Haiku
|
|
|
|
Link the `kristall` executable to your applications menu:
|
|
|
|
```sh
|
|
cd ~/config/settings/deskbar/menu/Applications/
|
|
ln -s /path/to/kristall .
|
|
```
|