You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
4.8 KiB
76 lines
4.8 KiB
1 week ago
|
These are common steps to build Notes from source on Linux distributions.
|
||
|
|
||
|
### Requirements
|
||
|
|
||
|
It's impossible to create a guide that will work for all Linux distros out there, but thankfully the only major difference between all of them will be package names, so feel free to add the appropriate package names for your favorite distro down here *(alphabetically, please)*.
|
||
|
|
||
|
| Distro | Build dependencies[^1] | Runtime dependencies[^2] |
|
||
|
| ---------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
|
| Arch Linux[^3] | `cmake` `gcc` `git` `qt6-base` `qt6-declarative` | `hicolor-icon-theme` `qt6-base` `qt6-declarative` |
|
||
|
| Fedora 37 - 39 | `cmake` `gcc` `git` `libxkbcommon-devel` `qt6-qtbase-private-devel` `qt6-qtdeclarative-devel` | `qt6-qtbase-gui` `qt6-qtdeclarative` |
|
||
|
| openSUSE Leap 15[^4] | `cmake` `gcc` `git` `qt6-base-private-devel` `qt6-declarative-devel` | `libQt6Concurrent6` `libQt6Gui6` `qt6-sql-sqlite` |
|
||
|
| Ubuntu 20.04[^5] | `cmake` `g++` `git` `qtbase5-private-dev` `qt5qtdeclarative5-dev` | `libqt5network5` `libqt5sql5` `libqt5widgets5` `qml-module-qtquick2` `qml-module-qtquick-controls2` `qml-module-qtquick-window2` |
|
||
|
| Ubuntu 22.04 - 23.04 | `cmake` `g++` `git` `qt6-base-private-dev` `qt6-declarative-dev` `libgl-dev` | `libqt6network6` `libqt6sql6` `libqt6widgets6` `qml6-module-qtqml-workerscript` `qml6-module-qtquick-controls` `qml6-module-qtquick-layouts` `qml6-module-qtquick-particles` `qml6-module-qtquick-templates` `qml6-module-qtquick-window` `qt6-qpa-plugins` |
|
||
|
|
||
|
[^1]: These packages are only required to build Notes, meaning you can remove all of them (or some of them) afterward.
|
||
|
[^2]: These packages are required to actually run Notes.
|
||
|
[^3]: We recommend building and installing through the [official AUR package](https://aur.archlinux.org/packages/notes).
|
||
|
[^4]: You may need to tell `cmake` to use use GCC 8 (or newer), e.g. run `export CXX=g++-10` before you invoke `cmake`.
|
||
|
[^5]: This distro can only build Notes with Qt 5.
|
||
|
|
||
|
### Build options
|
||
|
|
||
|
Please refer to [build_options.md](build_options.md).
|
||
|
|
||
|
### Building
|
||
|
|
||
|
First, use `git` to clone the project and its components, and then navigate into it:
|
||
|
|
||
|
```shell
|
||
|
git clone https://github.com/nuttyartist/notes.git --recurse-submodules
|
||
|
cd notes
|
||
|
```
|
||
|
|
||
|
Let's create a build folder called `build`:
|
||
|
|
||
|
```shell
|
||
|
mkdir build
|
||
|
cd build
|
||
|
```
|
||
|
|
||
|
After that, we're ready to build Notes!
|
||
|
|
||
|
Invoke CMake to configure and build the project into a folder called `build`, in [`Release` mode](https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html):
|
||
|
|
||
|
```shell
|
||
|
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||
|
make -j$(nproc)
|
||
|
```
|
||
|
|
||
|
To run the binary you just built (e.g. for testing purposes), you can simply execute the `notes` binary in the `build` folder:
|
||
|
|
||
|
```shell
|
||
|
./notes
|
||
|
```
|
||
|
|
||
|
If you want to install Notes like a regular, Linux desktop application (with its own desktop file and icons), you can simply run (as root):
|
||
|
|
||
|
```shell
|
||
|
make install
|
||
|
```
|
||
|
|
||
|
Alternatively, you can also create DEB or RPM packages (see the [Packaging section](#Packaging) below).
|
||
|
|
||
|
### Packaging
|
||
|
|
||
|
After building, you could also easily create DEB or RPM packages using [CPack](https://cmake.org/cmake/help/latest/manual/cpack.1.html):
|
||
|
|
||
|
```shell
|
||
|
# Create a DEB package
|
||
|
cpack -G DEB
|
||
|
# Create a RPM package
|
||
|
cpack -G RPM
|
||
|
```
|
||
|
|
||
|
Please note that it only makes sense to create DEB or RPM packages on the same distro you intend to install and run Notes on.
|