Commit 7b84d916 authored by David Boddie's avatar David Boddie Committed by rhn

Add basic information about the recommended development tools.

parent 1fbb049f
......@@ -7,8 +7,63 @@ Application development for the Librem 5 is not tied to a particular set of
technologies. However, for simplicity, we recommend that you use the same set
of tools and libraries that the Librem 5 developers have used.
* GNOME technologies: A run through the various GNOME technologies.
* GNOME Builder documentation: Documentation for the GNOME IDE.
* Meson: The recommended build system.
* Flatpak: Application sandboxing and distribution.
* gitg: The GNOME git client.
Where appropriate you can use the versions of these that are provided with your
operating system. However, it may be necessary to install more up-to-date
versions of some tools when new features are needed. The preferred method for
doing this is to use Flatpak to install sandboxed versions of the required
applications.
GNOME and GNOME Builder
-----------------------
The default software stack is based on many of the `technologies`_ from the
`GNOME`_ desktop environment. The applications supplied with the phone are
also built using components from GNOME, such as the `GTK+`_ toolkit. It can be
useful to install the latest development
We suggest that developers use the `GNOME Builder`_ Integrated Development
Environment (IDE) to develop applications. The `latest documentation`_ for
Builder describes the `preferred installation`_ method for the IDE. This can
be used to ensure that you have the latest version.
Meson and Ninja
---------------
Many applications will use the `Meson`_ and `Ninja`_ build tools to configure
and build applications. The versions of these available in modern GNU/Linux
distributions should be sufficient. Debian-based distributions, such as PureOS,
provide packages called ``meson`` and ``ninja-build``.
Flatpak
-------
`Flatpak`_ provides features for application sandboxing and distribution.
Applications for the phone will be distributed as Flatpaks - packages that can
be distributed via repositories. Documentation for the ``flatpak`` tool and
its ``flatpak-builder`` wrapper can be found in the `Flatpak documentation`_.
Versions of these tools provided with modern GNU/Linux distributions should be
sufficient. Debian-based distributions provide packages called ``flatpak`` and
``flatpak-builder``.
gitg
----
This `GNOME git client`_ can be useful for visualizing git repositories. This
is particularly helpful if you are considering porting an application with an
extensive development history.
Versions of this tool provided with modern GNU/Linux distributions should be
sufficient. Debian-based distributions provide a package called ``gitg``.
.. _`technologies`: https://www.gnome.org/technologies/
.. _`GNOME`: https://www.gnome.org
.. _`GTK+`: https://www.gtk.org
.. _`GNOME Builder`: https://wiki.gnome.org/Apps/Builder
.. _`latest documentation`: https://builder.readthedocs.io/en/latest/
.. _`preferred installation`: https://builder.readthedocs.io/en/latest/installation.html
.. _`Meson`: https://mesonbuild.com/
.. _`Ninja`: https://ninja-build.org/
.. _`Flatpak`: https://flatpak.org/
.. _`Flatpak documentation`: http://docs.flatpak.org/en/latest/
.. _`GNOME git client`: https://wiki.gnome.org/Apps/Gitg
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment