kristall/BUILDING.md

189 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

# Building
Here you can find build instructions for Kristall.
## Requirements
2021-01-02 11:49:24 +01:00
- 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.
2020-06-21 23:35:00 +02:00
#### Notes on FreeBSD
- Kristall can't be used with LibreSSL, but requires OpenSSL (probably because of Qt)
- Required packages
- `qt5`
2021-02-07 04:01:18 +01:00
- `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`
2020-07-20 17:45:21 +02:00
#### 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`
2020-07-20 17:45:21 +02:00
#### 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.
2023-11-07 16:37:33 +01:00
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).
2020-06-30 22:59:29 +02:00
**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)
2021-06-01 21:47:04 +02:00
2. Use `make` to build the executable
2021-09-13 07:47:00 +02:00
#### 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
2020-06-22 01:07:40 +02:00
cp Kristall.desktop ~/.local/share/applications/kristall.desktop
cp kristall-mime-info.xml ~/.local/share/mime/packages/kristall-mime-info.xml
2020-06-22 01:07:40 +02:00
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 .
2020-06-22 01:07:40 +02:00
```