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
|
||||
Version: 0.41.1
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: High productivity build system
|
||||
|
||||
License: ASL 2.0
|
||||
@ -12,6 +12,14 @@ Source0: https://github.com/mesonbuild/meson/archive/%{version}/%{name}-%
|
||||
# https://github.com/mesonbuild/meson/commit/0283a2fb41fb4c25be1d0078bb40ae761d47462a
|
||||
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
|
||||
Obsoletes: %{name}-gui < 0.31.0-3
|
||||
|
||||
@ -103,6 +111,9 @@ export MESON_PRINT_TEST_OUTPUT=1
|
||||
%{rpmmacrodir}/macros.%{name}
|
||||
|
||||
%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
|
||||
- Strip trailing slash from pkg-config files
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user