2017-08-14 16:43:40 +00:00
|
|
|
If you want to hack on the GTK+ project, you'll need to have the development
|
|
|
|
tools appropriate for your operating system, including:
|
|
|
|
|
2018-03-21 01:05:29 +00:00
|
|
|
- Python 3.x
|
|
|
|
- Meson
|
|
|
|
- Ninja
|
|
|
|
- Gettext (19.7 or newer)
|
|
|
|
- a C99 compatible compiler
|
2017-08-14 16:43:40 +00:00
|
|
|
|
|
|
|
Up-to-date instructions about developing GNOME applications and libraries
|
|
|
|
can be found here:
|
|
|
|
|
2018-03-21 01:05:29 +00:00
|
|
|
* https://developer.gnome.org
|
2017-08-14 16:43:40 +00:00
|
|
|
|
2018-03-13 18:13:46 +00:00
|
|
|
Information about using GitLab with GNOME can be found here:
|
2017-08-14 16:43:40 +00:00
|
|
|
|
2018-03-21 01:05:29 +00:00
|
|
|
* https://wiki.gnome.org/GitLab
|
2017-08-14 16:43:40 +00:00
|
|
|
|
|
|
|
In order to get Git GTK+ installed on your system, you need to have the
|
|
|
|
required versions of all the GTK+ dependencies; typically, this means a
|
2018-03-13 18:13:46 +00:00
|
|
|
recent version of GLib, Cairo, Pango, and ATK, as well as the platform
|
|
|
|
specific dependencies for the windowing system you are using (Wayland, X11,
|
|
|
|
Windows, or macOS).
|
2017-08-14 16:43:40 +00:00
|
|
|
|
2018-03-13 18:13:46 +00:00
|
|
|
You should start by forking the GTK repository from the GitLab web UI, and
|
|
|
|
cloning from your fork:
|
|
|
|
|
|
|
|
```ssh
|
|
|
|
$ git clone https://gitlab.gnome.org/yourusername/gtk.git
|
|
|
|
$ cd gtk
|
|
|
|
```
|
|
|
|
|
|
|
|
**Note**: if you plan to push changes to back to the main repository and
|
|
|
|
have a GNOME account, you can skip the fork, and use the following instead:
|
2017-08-14 16:43:40 +00:00
|
|
|
|
|
|
|
```sh
|
2018-03-13 18:13:46 +00:00
|
|
|
$ git clone git@gitlab.gnome.org:GNOME/gtk.git
|
|
|
|
$ cd gtk
|
2017-08-14 16:43:40 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
To compile the Git version of GTK+ on your system, you will need to
|
|
|
|
configure your build using Meson:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ meson _builddir .
|
2018-03-13 18:13:46 +00:00
|
|
|
$ cd _builddir
|
|
|
|
$ ninja
|
|
|
|
```
|
|
|
|
|
|
|
|
**Note**: For information about submitting patches and pushing changes
|
2018-08-26 23:48:51 +00:00
|
|
|
to Git, see the [README.md](./README.md) and [README.commits.md](./README.commits.md) files. In particular,
|
2018-03-13 18:13:46 +00:00
|
|
|
don't, under any circumstances, push anything to Git before reading and
|
2018-08-26 23:48:51 +00:00
|
|
|
understanding [README.commits.md](./README.commits.md).
|
2018-03-13 18:13:46 +00:00
|
|
|
|
|
|
|
Typically, you should work on your own branch:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ git checkout -b your-branch
|
2017-08-14 16:43:40 +00:00
|
|
|
```
|
|
|
|
|
2018-03-13 18:13:46 +00:00
|
|
|
Once you've finished working on the bug fix or feature, push the branch
|
|
|
|
to the Git repository and open a new merge request, to let the GTK
|
2018-08-26 23:48:51 +00:00
|
|
|
maintainers review your contribution. The [CODE-OWNERS](./docs/CODE-OWNERS)
|
2018-04-16 08:41:24 +00:00
|
|
|
document contains the list of core contributors to GTK and the areas for
|
|
|
|
which they are responsible.
|