The GObject Introspection metadata generation by meson uses a custom
target command[0]. This command also needs to specify the shared
library where the symbols in the typelib file can be found.
However, the values used are wrong because the path to the built
shared libraries are specified instead of the name of the
shared libraries themselves.
This has been fixed by specifying the name of the shared libraries.
Fixes#157
[0] http://mesonbuild.com/Vala.html#gobject-introspection
autotools is able to generate documentation by using the `valadoc`
program. However, meson is not able to generate this documentation.
meson build files has been fixed to be able to generate `valadoc`
documentation.
Although most of the parameters used for file naming when building
libraries and introspection data can be replaced by variables, the
actual naming can create a lot of confusion.
This naming scheme has been improved by using clearer names and by
also using a prefix in them.
Libraries build by gitg expose a number of includes in their public
headers belonging to different libraries. Therefore, these libraries
are indirect dependencies of the library to be built.
With this in mind, these indirect dependencies are also included
when a direct dependency is included, so there is no need to include
them again.
Dependency hierarchy has been fixed and duplicated dependencies
removed.
Created `pkg-config` files requirements have also been fixed.
Used meson modules and directory definitions were placed at the end
of the root meson build file. However, this is recommended to be
placed at the start of the file, so they are usable early.
Following meson portng guidelines[0], `source_root()` and
`build_root()` functions have also been replaced.
[0] https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
Some targets that are installed in default directories are using the
`install_dir`, which is not necessary.
The `install_dir` parameter has been removed from those targets that
are installed in their default directories.
While installing seems to have no issues with absolute paths
for install_dir, the pkgconfig integration in meson does
and create wrong library paths in the .pc file.
https://bugzilla.gnome.org/show_bug.cgi?id=788796
Following the new meson porting guidelines, this patch renames the
build options. The list of changes is as follows:
- Remove the enable prefix from boolean options.
- The character separator from multi-word options has been changed
to underscore.
The warning compiler options are also removed because meson's
compiler related options should be used.
https://bugzilla.gnome.org/show_bug.cgi?id=788796
meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=788796