To compile FeatherNotes from its source, first install build dependencies. In Debian-based systems, they are:

 * g++ >= 5
 * libx11-dev and libxext-dev (for X11)
 * qtbase5-dev and libqt5x11extras5-dev (for Qt5)
 * libqt5svg5-dev (for hard-coded SVG icons)
 * qttools5-dev-tools (for localization)
 * libhunspell-dev (for spell checking)

In Arch-based systems, the required package are:

 * gcc (or gcc-multilib for multilib systems)
 * libx11 and libxext (for X11)
 * qt5-base and qt5-x11extras (for Qt5)
 * qt5-svg (for hard-coded SVG icons)
 * qt5-tools (for localization)
 * hunspell (for spell checking)

In Red Hat based systems like Fedora:

 * gcc-c++
 * libX11-devel
 * libXext-devel
 * qt5-qtx11extras-devel
 * qt5-qtbase-devel
 * qt5-qtsvg-devel
 * qt5-qttools-devel
 * hunspell-devel (for spell checking)

And, finally, in OpenSUSE:

 * gcc-c++
 * libX11-devel
 * libXext-devel
 * libqt5-qtx11extras-devel
 * libqt5-qtbase-devel
 * libqt5-qtsvg-devel
 * libqt5-qttools-devel
 * hunspell-devel (for spell checking)

With cmake
==========
Then, open a terminal inside this folder and issue the following commands:

	mkdir build && cd build
	cmake ..
	make
	sudo make install

With qmake
==========
If you prefer qmake, use these commands instead:

	qmake && make
	sudo make install

You might need to put the full path of qmake in the first command and also the full path of Qt5's "lrelease" binary in 'feathernotes/feathernotes.pro'. After a qmake compilation, you could clean the source directory with this command:

	make distclean

*********************************
*   Compilation with Hunspell   *
*********************************

Under Linux and Unix, FeatherNotes supports spell checking with Hunspell. If the compilation is done by cmake, Hunspell will be included automatically.

But if you use qmake and want the spell checking support, you should turn it on at first:

	qmake WITH_HUNSPELL=YES

The reason is that the qmake support has existed from the beginning and needs to be backward compatible.

*******************************
*   Compilation without X11   *
*******************************

If, for whatever reason, you do not want the X11 support, you could first turn on the option "WITHOUT_X11" with cmake:

	cmake .. -DWITHOUT_X11=ON

Or, if you use qmake:

	qmake WITHOUT_X11=YES

The result will have all features except for virtual desktop awareness.

Please also note that, on Linux, FeatherNotes works under Wayland and you do not need to disable its X11 support for that.

Compilation on Haiku OS or macOS does not require "WITHOUT_X11" either.

**********************************
*   Translation (Localization)   *
**********************************

The file 'feathernotes/data/translations/feathernotes.ts' can serve as the basis for translation. The translated file should be saved in the same directory as "feathernotes_LN.ts", where "LN" is the abbreviation for the target language, like "de", "fr", etc.

If you have translated FeatherNotes's GUI into your language, please make a "Pull Request" (PR) at https://github.com/tsujan/FeatherNotes for your work to be merged into FeatherNotes!
