Backport various gtk-doc fixes from upstream
This commit is contained in:
parent
ba4abe8828
commit
05cd86cbd8
@ -0,0 +1,29 @@
|
|||||||
|
From 7c8ba60384f9c6b9bdcad0345f56d73c246ab98c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
|
||||||
|
Date: Mon, 19 Jun 2017 19:05:42 -0400
|
||||||
|
Subject: [PATCH 1/6] Use absolute path to target dir within gnome module.
|
||||||
|
|
||||||
|
Stuff like gtkdoc may not be run in the top-level build directory, so
|
||||||
|
these paths need to be absolute.
|
||||||
|
|
||||||
|
Fixes #1950.
|
||||||
|
---
|
||||||
|
mesonbuild/modules/gnome.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
|
||||||
|
index 6ec70403..3c80a094 100644
|
||||||
|
--- a/mesonbuild/modules/gnome.py
|
||||||
|
+++ b/mesonbuild/modules/gnome.py
|
||||||
|
@@ -294,7 +294,7 @@ class GnomeModule(ExtensionModule):
|
||||||
|
else:
|
||||||
|
link_command = ['-l' + lib.name]
|
||||||
|
if isinstance(lib, build.SharedLibrary):
|
||||||
|
- libdir = state.backend.get_target_dir(lib)
|
||||||
|
+ libdir = os.path.join(state.environment.get_build_dir(), state.backend.get_target_dir(lib))
|
||||||
|
link_command.append('-L' + libdir)
|
||||||
|
# Needed for the following binutils bug:
|
||||||
|
# https://github.com/mesonbuild/meson/issues/1911
|
||||||
|
--
|
||||||
|
2.13.0
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From a07fd0cb7cab97bf3edb55e5e721397188c94e66 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
|
||||||
|
Date: Mon, 19 Jun 2017 20:52:12 -0400
|
||||||
|
Subject: [PATCH 2/6] Add build include directory to gtkdoc source paths.
|
||||||
|
|
||||||
|
This enables gtkdoc to produce documentation on files that were
|
||||||
|
generated, using configure_file, for example.
|
||||||
|
---
|
||||||
|
mesonbuild/modules/gnome.py | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
|
||||||
|
index 3c80a094..00e5a8cb 100644
|
||||||
|
--- a/mesonbuild/modules/gnome.py
|
||||||
|
+++ b/mesonbuild/modules/gnome.py
|
||||||
|
@@ -700,6 +700,8 @@ class GnomeModule(ExtensionModule):
|
||||||
|
for inc_dir in src_dir.get_incdirs():
|
||||||
|
header_dirs.append(os.path.join(state.environment.get_source_dir(),
|
||||||
|
src_dir.get_curdir(), inc_dir))
|
||||||
|
+ header_dirs.append(os.path.join(state.environment.get_build_dir(),
|
||||||
|
+ src_dir.get_curdir(), inc_dir))
|
||||||
|
else:
|
||||||
|
header_dirs.append(src_dir)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.13.0
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From cf01adbf77a5a739fb7be6a1f297d16c3213da94 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
|
||||||
|
Date: Mon, 19 Jun 2017 19:07:09 -0400
|
||||||
|
Subject: [PATCH 3/6] Add all internal dep rpaths to gnome module builds.
|
||||||
|
|
||||||
|
Running gtkdoc on a shared library that depends on another shared
|
||||||
|
library would fail otherwise.
|
||||||
|
---
|
||||||
|
mesonbuild/modules/gnome.py | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
|
||||||
|
index 00e5a8cb..7d539aa8 100644
|
||||||
|
--- a/mesonbuild/modules/gnome.py
|
||||||
|
+++ b/mesonbuild/modules/gnome.py
|
||||||
|
@@ -303,6 +303,8 @@ class GnomeModule(ExtensionModule):
|
||||||
|
for d in state.backend.determine_rpath_dirs(lib):
|
||||||
|
d = os.path.join(state.environment.get_build_dir(), d)
|
||||||
|
link_command.append('-L' + d)
|
||||||
|
+ if include_rpath:
|
||||||
|
+ link_command.append('-Wl,-rpath,' + d)
|
||||||
|
if include_rpath:
|
||||||
|
link_command.append('-Wl,-rpath,' + libdir)
|
||||||
|
if depends:
|
||||||
|
--
|
||||||
|
2.13.0
|
||||||
|
|
99
0004-Add-example-of-generated-header-in-docs.patch
Normal file
99
0004-Add-example-of-generated-header-in-docs.patch
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
From 3bf44e21bba1b83c0f8698779263a5e7679d6f19 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
|
||||||
|
Date: Mon, 19 Jun 2017 19:53:58 -0400
|
||||||
|
Subject: [PATCH 4/6] Add example of generated header in docs.
|
||||||
|
|
||||||
|
---
|
||||||
|
.../frameworks/10 gtk-doc/doc/foobar-docs.sgml | 1 +
|
||||||
|
.../frameworks/10 gtk-doc/include/foo-version.h.in | 29 ++++++++++++++++++++++
|
||||||
|
.../frameworks/10 gtk-doc/include/meson.build | 10 ++++++++
|
||||||
|
test cases/frameworks/10 gtk-doc/meson.build | 4 ++-
|
||||||
|
4 files changed, 43 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 test cases/frameworks/10 gtk-doc/include/foo-version.h.in
|
||||||
|
create mode 100644 test cases/frameworks/10 gtk-doc/include/meson.build
|
||||||
|
|
||||||
|
diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml
|
||||||
|
index d23b22fe..028b8083 100644
|
||||||
|
--- a/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml
|
||||||
|
+++ b/test cases/frameworks/10 gtk-doc/doc/foobar-docs.sgml
|
||||||
|
@@ -34,6 +34,7 @@
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
<xi:include href="xml/foo.xml"/>
|
||||||
|
+ <xi:include href="xml/foo-version.xml"/>
|
||||||
|
</reference>
|
||||||
|
|
||||||
|
</book>
|
||||||
|
diff --git a/test cases/frameworks/10 gtk-doc/include/foo-version.h.in b/test cases/frameworks/10 gtk-doc/include/foo-version.h.in
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000..30751cd7
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test cases/frameworks/10 gtk-doc/include/foo-version.h.in
|
||||||
|
@@ -0,0 +1,29 @@
|
||||||
|
+#pragma once
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * SECTION:version
|
||||||
|
+ * @section_id: foo-version
|
||||||
|
+ * @short_description: <filename>foo-version.h</filename>
|
||||||
|
+ * @title: Foo Versioning
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * FOO_MAJOR_VERSION:
|
||||||
|
+ *
|
||||||
|
+ * The major version of foo.
|
||||||
|
+ */
|
||||||
|
+#define FOO_MAJOR_VERSION (@FOO_MAJOR_VERSION@)
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * FOO_MINOR_VERSION:
|
||||||
|
+ *
|
||||||
|
+ * The minor version of foo.
|
||||||
|
+ */
|
||||||
|
+#define FOO_MINOR_VERSION (@FOO_MINOR_VERSION@)
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * FOO_MICRO_VERSION:
|
||||||
|
+ *
|
||||||
|
+ * The micro version of foo.
|
||||||
|
+ */
|
||||||
|
+#define FOO_MICRO_VERSION (@FOO_MICRO_VERSION@)
|
||||||
|
diff --git a/test cases/frameworks/10 gtk-doc/include/meson.build b/test cases/frameworks/10 gtk-doc/include/meson.build
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000..4c85b801
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test cases/frameworks/10 gtk-doc/include/meson.build
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+cdata = configuration_data()
|
||||||
|
+parts = meson.project_version().split('.')
|
||||||
|
+cdata.set('FOO_MAJOR_VERSION', parts[0])
|
||||||
|
+cdata.set('FOO_MINOR_VERSION', parts[1])
|
||||||
|
+cdata.set('FOO_MICRO_VERSION', parts[2])
|
||||||
|
+configure_file(input : 'foo-version.h.in',
|
||||||
|
+ output : 'foo-version.h',
|
||||||
|
+ configuration : cdata,
|
||||||
|
+ install : true,
|
||||||
|
+ install_dir : get_option('includedir'))
|
||||||
|
diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build
|
||||||
|
index 95eeefa7..4cfcca18 100644
|
||||||
|
--- a/test cases/frameworks/10 gtk-doc/meson.build
|
||||||
|
+++ b/test cases/frameworks/10 gtk-doc/meson.build
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-project('gtkdoctest', 'c')
|
||||||
|
+project('gtkdoctest', 'c', version : '1.0.0')
|
||||||
|
|
||||||
|
gnome = import('gnome')
|
||||||
|
|
||||||
|
@@ -6,6 +6,8 @@ assert(gnome.gtkdoc_html_dir('foobar') == 'share/gtkdoc/html/foobar', 'Gtkdoc in
|
||||||
|
|
||||||
|
inc = include_directories('include')
|
||||||
|
|
||||||
|
+subdir('include')
|
||||||
|
+
|
||||||
|
# We have to disable this test until this bug fix has landed to
|
||||||
|
# distros https://bugzilla.gnome.org/show_bug.cgi?id=753145
|
||||||
|
error('MESON_SKIP_TEST can not enable gtk-doc test until upstream fixes have landed.')
|
||||||
|
--
|
||||||
|
2.13.0
|
||||||
|
|
@ -0,0 +1,58 @@
|
|||||||
|
From b9caaf94bc918dc8831889e1c6de5bbc9ad2a481 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nirbheek Chauhan <nirbheek@centricular.com>
|
||||||
|
Date: Mon, 17 Jul 2017 12:40:09 +0530
|
||||||
|
Subject: [PATCH 5/6] gnome.gtkdoc: Handle absolute install_dirs correctly
|
||||||
|
|
||||||
|
Must prepend DESTDIR in case it's absolute. Also document that by
|
||||||
|
default it is relative to the gtk-doc html directory.
|
||||||
|
---
|
||||||
|
docs/markdown/Gnome-module.md | 4 ++--
|
||||||
|
mesonbuild/scripts/gtkdochelper.py | 8 +++++---
|
||||||
|
2 files changed, 7 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/docs/markdown/Gnome-module.md b/docs/markdown/Gnome-module.md
|
||||||
|
index 61b88ada..098f030f 100644
|
||||||
|
--- a/docs/markdown/Gnome-module.md
|
||||||
|
+++ b/docs/markdown/Gnome-module.md
|
||||||
|
@@ -134,14 +134,14 @@ This also creates two targets for translations `help-$project-update-po` and `he
|
||||||
|
|
||||||
|
### gnome.gtkdoc()
|
||||||
|
|
||||||
|
-Compiles and installs gtkdoc documentation. Takes one positional arguments; The name of the module.
|
||||||
|
+Compiles and installs gtkdoc documentation into `prefix/share/gtk-doc/html`. Takes one positional argument: The name of the module.
|
||||||
|
|
||||||
|
* `main_xml`: specifies the main XML file
|
||||||
|
* `main_sgml`: equal to `main_xml`
|
||||||
|
* `src_dir`: include_directories to include
|
||||||
|
* `dependencies`: a list of dependencies
|
||||||
|
* `install`: if true, installs the generated docs
|
||||||
|
-* `install_dir`: the directory to install the generated docs
|
||||||
|
+* `install_dir`: the directory to install the generated docs relative to the gtk-doc html dir or an absolute path (default: module name)
|
||||||
|
* `scan_args`: a list of arguments to pass to `gtkdoc-scan`
|
||||||
|
* `scanobjs_args`: a list of arguments to pass to `gtkdoc-scangobj`
|
||||||
|
* `gobject_typesfile`: a list of type files
|
||||||
|
diff --git a/mesonbuild/scripts/gtkdochelper.py b/mesonbuild/scripts/gtkdochelper.py
|
||||||
|
index a2cbf5a5..45ed96bc 100644
|
||||||
|
--- a/mesonbuild/scripts/gtkdochelper.py
|
||||||
|
+++ b/mesonbuild/scripts/gtkdochelper.py
|
||||||
|
@@ -218,12 +218,14 @@ def run(args):
|
||||||
|
options.mode)
|
||||||
|
|
||||||
|
if 'MESON_INSTALL_PREFIX' in os.environ:
|
||||||
|
- install_dir = options.install_dir if options.install_dir else options.modulename
|
||||||
|
destdir = os.environ.get('DESTDIR', '')
|
||||||
|
- installdir = destdir_join(destdir, os.environ['MESON_INSTALL_PREFIX'])
|
||||||
|
+ install_prefix = destdir_join(destdir, os.environ['MESON_INSTALL_PREFIX'])
|
||||||
|
+ install_dir = options.install_dir if options.install_dir else options.modulename
|
||||||
|
+ if os.path.isabs(install_dir):
|
||||||
|
+ install_dir = destdir_join(destdir, install_dir)
|
||||||
|
install_gtkdoc(options.builddir,
|
||||||
|
options.subdir,
|
||||||
|
- installdir,
|
||||||
|
+ install_prefix,
|
||||||
|
'share/gtk-doc/html',
|
||||||
|
install_dir)
|
||||||
|
return 0
|
||||||
|
--
|
||||||
|
2.13.0
|
||||||
|
|
41
0006-gnome-module-Add-lfoo-after-Lbar-LDFLAGS.patch
Normal file
41
0006-gnome-module-Add-lfoo-after-Lbar-LDFLAGS.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From 19f39ad05952099ecb915399231aa88f9acd3b20 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nirbheek Chauhan <nirbheek@centricular.com>
|
||||||
|
Date: Mon, 17 Jul 2017 12:41:54 +0530
|
||||||
|
Subject: [PATCH 6/6] gnome module: Add -lfoo after -Lbar LDFLAGS
|
||||||
|
|
||||||
|
Otherwise they won't take effect
|
||||||
|
---
|
||||||
|
mesonbuild/modules/gnome.py | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
|
||||||
|
index 7d539aa8..6e633a70 100644
|
||||||
|
--- a/mesonbuild/modules/gnome.py
|
||||||
|
+++ b/mesonbuild/modules/gnome.py
|
||||||
|
@@ -288,11 +288,8 @@ class GnomeModule(ExtensionModule):
|
||||||
|
|
||||||
|
def _get_link_args(self, state, lib, depends=None, include_rpath=False,
|
||||||
|
use_gir_args=False):
|
||||||
|
+ link_command = []
|
||||||
|
# Construct link args
|
||||||
|
- if gir_has_extra_lib_arg() and use_gir_args:
|
||||||
|
- link_command = ['--extra-library=' + lib.name]
|
||||||
|
- else:
|
||||||
|
- link_command = ['-l' + lib.name]
|
||||||
|
if isinstance(lib, build.SharedLibrary):
|
||||||
|
libdir = os.path.join(state.environment.get_build_dir(), state.backend.get_target_dir(lib))
|
||||||
|
link_command.append('-L' + libdir)
|
||||||
|
@@ -309,6 +306,10 @@ class GnomeModule(ExtensionModule):
|
||||||
|
link_command.append('-Wl,-rpath,' + libdir)
|
||||||
|
if depends:
|
||||||
|
depends.append(lib)
|
||||||
|
+ if gir_has_extra_lib_arg() and use_gir_args:
|
||||||
|
+ link_command.append('--extra-library=' + lib.name)
|
||||||
|
+ else:
|
||||||
|
+ link_command.append('-l' + lib.name)
|
||||||
|
return link_command
|
||||||
|
|
||||||
|
def _get_dependencies_flags(self, deps, state, depends=None, include_rpath=False,
|
||||||
|
--
|
||||||
|
2.13.0
|
||||||
|
|
13
meson.spec
13
meson.spec
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Name: meson
|
Name: meson
|
||||||
Version: 0.41.1
|
Version: 0.41.1
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: High productivity build system
|
Summary: High productivity build system
|
||||||
|
|
||||||
License: ASL 2.0
|
License: ASL 2.0
|
||||||
@ -12,6 +12,14 @@ Source0: https://github.com/mesonbuild/meson/archive/%{version}/%{name}-%
|
|||||||
# https://github.com/mesonbuild/meson/commit/0283a2fb41fb4c25be1d0078bb40ae761d47462a
|
# https://github.com/mesonbuild/meson/commit/0283a2fb41fb4c25be1d0078bb40ae761d47462a
|
||||||
Patch0001: 0001-pkgconfig-avoid-appending-slash-at-Cflags.patch
|
Patch0001: 0001-pkgconfig-avoid-appending-slash-at-Cflags.patch
|
||||||
|
|
||||||
|
# various gtk-doc fixes backported from upstream
|
||||||
|
Patch0002: 0001-Use-absolute-path-to-target-dir-within-gnome-module.patch
|
||||||
|
Patch0003: 0002-Add-build-include-directory-to-gtkdoc-source-paths.patch
|
||||||
|
Patch0004: 0003-Add-all-internal-dep-rpaths-to-gnome-module-builds.patch
|
||||||
|
Patch0005: 0004-Add-example-of-generated-header-in-docs.patch
|
||||||
|
Patch0006: 0005-gnome.gtkdoc-Handle-absolute-install_dirs-correctly.patch
|
||||||
|
Patch0007: 0006-gnome-module-Add-lfoo-after-Lbar-LDFLAGS.patch
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
Obsoletes: %{name}-gui < 0.31.0-3
|
Obsoletes: %{name}-gui < 0.31.0-3
|
||||||
|
|
||||||
@ -103,6 +111,9 @@ export MESON_PRINT_TEST_OUTPUT=1
|
|||||||
%{rpmmacrodir}/macros.%{name}
|
%{rpmmacrodir}/macros.%{name}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jul 18 2017 Kalev Lember <klember@redhat.com> - 0.41.1-3
|
||||||
|
- Backport various gtk-doc fixes from upstream
|
||||||
|
|
||||||
* Thu Jul 13 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.41.1-2
|
* Thu Jul 13 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.41.1-2
|
||||||
- Strip trailing slash from pkg-config files
|
- Strip trailing slash from pkg-config files
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user