diff options
9 files changed, 12 insertions, 461 deletions
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch deleted file mode 100644 index 9e1f79e881..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch +++ /dev/null | |||
| @@ -1,50 +0,0 @@ | |||
| 1 | From 59d2cbb54c012b25adeb965a94b6585d911a4539 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Joshua Watt <JPEWhacker@gmail.com> | ||
| 3 | Date: Wed, 20 Nov 2019 09:03:47 -0600 | ||
| 4 | Subject: [PATCH] Fix build reproducibility | ||
| 5 | |||
| 6 | ba744068 ("Make meson.override_find_program working on more complex use | ||
| 7 | cases") made the build no longer reproducible by encoding a build system | ||
| 8 | path into the output. This shouldn't be necessary anyway, since it | ||
| 9 | should be possible to add new paths to search for gir files by setting | ||
| 10 | the XDG_DATA_DIR environment variable. | ||
| 11 | |||
| 12 | Closes #318 | ||
| 13 | |||
| 14 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/192] | ||
| 15 | Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> | ||
| 16 | --- | ||
| 17 | girepository/girparser.c | 4 ---- | ||
| 18 | meson.build | 1 - | ||
| 19 | 2 files changed, 5 deletions(-) | ||
| 20 | |||
| 21 | diff --git a/girepository/girparser.c b/girepository/girparser.c | ||
| 22 | index fb47e75c..53450baf 100644 | ||
| 23 | --- a/girepository/girparser.c | ||
| 24 | +++ b/girepository/girparser.c | ||
| 25 | @@ -309,10 +309,6 @@ locate_gir (GIrParser *parser, | ||
| 26 | if (g_file_test (path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) | ||
| 27 | return path; | ||
| 28 | g_free (path); | ||
| 29 | - path = g_build_filename (UNINSTALLED_GIR_DIR, girname, NULL); | ||
| 30 | - if (g_file_test (path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) | ||
| 31 | - return path; | ||
| 32 | - g_free (path); | ||
| 33 | return NULL; | ||
| 34 | } | ||
| 35 | |||
| 36 | diff --git a/meson.build b/meson.build | ||
| 37 | index d6231c5f..2f248579 100644 | ||
| 38 | --- a/meson.build | ||
| 39 | +++ b/meson.build | ||
| 40 | @@ -90,7 +90,6 @@ endif | ||
| 41 | girdir = join_paths(gir_dir_prefix, 'gir-1.0') | ||
| 42 | config.set_quoted('GIR_DIR', girdir) | ||
| 43 | config.set_quoted('GOBJECT_INTROSPECTION_LIBDIR', join_paths(get_option('prefix'), get_option('libdir'))) | ||
| 44 | -config.set_quoted('UNINSTALLED_GIR_DIR', join_paths(meson.current_build_dir(), 'gir')) | ||
| 45 | |||
| 46 | foreach type : ['char', 'short', 'int', 'long'] | ||
| 47 | size = cc.sizeof(type) | ||
| 48 | -- | ||
| 49 | 2.23.0 | ||
| 50 | |||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch deleted file mode 100644 index 639f9c8f61..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch +++ /dev/null | |||
| @@ -1,163 +0,0 @@ | |||
| 1 | From 0417a1bb08745f2bf5310d20b342c2b3b9b212d3 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 3 | Date: Thu, 15 Nov 2018 15:10:05 +0100 | ||
| 4 | Subject: [PATCH] Port cross-compilation support to meson | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 8 | |||
| 9 | --- | ||
| 10 | gir/meson.build | 62 ++++++++++++++++++++++++++++++++++------------- | ||
| 11 | meson.build | 4 ++- | ||
| 12 | meson_options.txt | 20 +++++++++++++++ | ||
| 13 | 3 files changed, 68 insertions(+), 18 deletions(-) | ||
| 14 | |||
| 15 | diff --git a/gir/meson.build b/gir/meson.build | ||
| 16 | index c312100..a028033 100644 | ||
| 17 | --- a/gir/meson.build | ||
| 18 | +++ b/gir/meson.build | ||
| 19 | @@ -41,16 +41,29 @@ gir_files = [ | ||
| 20 | typelibdir = join_paths(get_option('libdir'), 'girepository-1.0') | ||
| 21 | install_data(gir_files, install_dir: girdir) | ||
| 22 | |||
| 23 | -scanner_command = [ | ||
| 24 | - python, | ||
| 25 | - girscanner, | ||
| 26 | - '--output=@OUTPUT@', | ||
| 27 | - '--no-libtool', | ||
| 28 | - '--quiet', | ||
| 29 | - '--reparse-validate', | ||
| 30 | - '--add-include-path', join_paths(meson.current_build_dir()), | ||
| 31 | - '--add-include-path', join_paths(meson.current_source_dir()), | ||
| 32 | -] | ||
| 33 | +if get_option('enable-host-gi') | ||
| 34 | + scanner_command = [ | ||
| 35 | + 'g-ir-scanner', | ||
| 36 | + '--output=@OUTPUT@', | ||
| 37 | + '--no-libtool', | ||
| 38 | + '--quiet', | ||
| 39 | + '--reparse-validate', | ||
| 40 | + '--add-include-path', join_paths(meson.current_build_dir()), | ||
| 41 | + '--add-include-path', join_paths(meson.current_source_dir()), | ||
| 42 | + ] | ||
| 43 | +else | ||
| 44 | + scanner_command = [ | ||
| 45 | + python, | ||
| 46 | + girscanner, | ||
| 47 | + '--output=@OUTPUT@', | ||
| 48 | + '--no-libtool', | ||
| 49 | + '--quiet', | ||
| 50 | + '--reparse-validate', | ||
| 51 | + '--add-include-path', join_paths(meson.current_build_dir()), | ||
| 52 | + '--add-include-path', join_paths(meson.current_source_dir()), | ||
| 53 | + ] | ||
| 54 | +endif | ||
| 55 | + | ||
| 56 | |||
| 57 | dep_type = glib_dep.type_name() | ||
| 58 | if dep_type == 'internal' | ||
| 59 | @@ -63,6 +76,12 @@ if dep_type == 'internal' | ||
| 60 | '--extra-library=glib-2.0', '--extra-library=gobject-2.0'] | ||
| 61 | endif | ||
| 62 | |||
| 63 | +if get_option('enable-gi-cross-wrapper') != '' | ||
| 64 | + scanner_command += ['--use-binary-wrapper=' + get_option('enable-gi-cross-wrapper')] | ||
| 65 | +endif | ||
| 66 | +if get_option('enable-gi-ldd-wrapper') != '' | ||
| 67 | + scanner_command += ['--use-ldd-wrapper=' + get_option('enable-gi-ldd-wrapper')] | ||
| 68 | +endif | ||
| 69 | # Take a glob and print to newlines | ||
| 70 | globber = ''' | ||
| 71 | from glob import glob | ||
| 72 | @@ -89,8 +108,8 @@ glib_command = scanner_command + [ | ||
| 73 | |||
| 74 | if dep_type == 'pkgconfig' | ||
| 75 | glib_command += ['--external-library', '--pkg=glib-2.0'] | ||
| 76 | - glib_libdir = glib_dep.get_pkgconfig_variable('libdir') | ||
| 77 | - glib_incdir = join_paths(glib_dep.get_pkgconfig_variable('includedir'), 'glib-2.0') | ||
| 78 | + glib_libdir = get_option('pkgconfig-sysroot-path') + glib_dep.get_pkgconfig_variable('libdir') | ||
| 79 | + glib_incdir = get_option('pkgconfig-sysroot-path') + join_paths(glib_dep.get_pkgconfig_variable('includedir'), 'glib-2.0') | ||
| 80 | glib_libincdir = join_paths(glib_libdir, 'glib-2.0', 'include') | ||
| 81 | glib_files += join_paths(glib_incdir, 'gobject', 'glib-types.h') | ||
| 82 | glib_files += join_paths(glib_libincdir, 'glibconfig.h') | ||
| 83 | @@ -345,7 +364,7 @@ if giounix_dep.found() | ||
| 84 | dep_type = giounix_dep.type_name() | ||
| 85 | if dep_type == 'pkgconfig' | ||
| 86 | gio_command += ['--pkg=gio-unix-2.0'] | ||
| 87 | - giounix_includedir = join_paths(giounix_dep.get_pkgconfig_variable('includedir'), 'gio-unix-2.0') | ||
| 88 | + giounix_includedir = get_option('pkgconfig-sysroot-path') + join_paths(giounix_dep.get_pkgconfig_variable('includedir'), 'gio-unix-2.0') | ||
| 89 | # Get the installed gio-unix header list | ||
| 90 | ret = run_command(python, '-c', globber.format(join_paths(giounix_includedir, 'gio', '*.h'))) | ||
| 91 | if ret.returncode() != 0 | ||
| 92 | @@ -428,15 +447,24 @@ gir_files += custom_target('gir-girepository', | ||
| 93 | ) | ||
| 94 | |||
| 95 | typelibs = [] | ||
| 96 | +if get_option('enable-gi-cross-wrapper') != '' | ||
| 97 | + gircompiler_command = [get_option('enable-gi-cross-wrapper'), gircompiler.full_path(), '-o', '@OUTPUT@', '@INPUT@', | ||
| 98 | + '--includedir', meson.current_build_dir(), | ||
| 99 | + '--includedir', meson.current_source_dir(), | ||
| 100 | + ] | ||
| 101 | +else | ||
| 102 | + gircompiler_command = [gircompiler, '-o', '@OUTPUT@', '@INPUT@', | ||
| 103 | + '--includedir', meson.current_build_dir(), | ||
| 104 | + '--includedir', meson.current_source_dir(), | ||
| 105 | + ] | ||
| 106 | +endif | ||
| 107 | + | ||
| 108 | foreach gir : gir_files | ||
| 109 | typelibs += custom_target('generate-typelib-@0@'.format(gir).underscorify(), | ||
| 110 | input: gir, | ||
| 111 | output: '@BASENAME@.typelib', | ||
| 112 | depends: [gobject_gir, ], | ||
| 113 | - command: [gircompiler, '-o', '@OUTPUT@', '@INPUT@', | ||
| 114 | - '--includedir', meson.current_build_dir(), | ||
| 115 | - '--includedir', meson.current_source_dir(), | ||
| 116 | - ], | ||
| 117 | + command: gircompiler_command, | ||
| 118 | install: true, | ||
| 119 | install_dir: typelibdir, | ||
| 120 | ) | ||
| 121 | diff --git a/meson.build b/meson.build | ||
| 122 | index a5e825f..a28490a 100644 | ||
| 123 | --- a/meson.build | ||
| 124 | +++ b/meson.build | ||
| 125 | @@ -168,7 +168,9 @@ endif | ||
| 126 | subdir('girepository') | ||
| 127 | subdir('tools') | ||
| 128 | subdir('giscanner') | ||
| 129 | -subdir('gir') | ||
| 130 | +if get_option('enable-introspection-data') == true | ||
| 131 | + subdir('gir') | ||
| 132 | +endif | ||
| 133 | subdir('examples') | ||
| 134 | subdir('docs') | ||
| 135 | subdir('tests') | ||
| 136 | diff --git a/meson_options.txt b/meson_options.txt | ||
| 137 | index 445a68a..a325511 100644 | ||
| 138 | --- a/meson_options.txt | ||
| 139 | +++ b/meson_options.txt | ||
| 140 | @@ -25,3 +25,23 @@ option('python', type: 'string', value: 'python3', | ||
| 141 | option('gir_dir_prefix', type: 'string', | ||
| 142 | description: 'Intermediate prefix for gir installation under ${prefix}' | ||
| 143 | ) | ||
| 144 | + | ||
| 145 | +option('enable-host-gi', type: 'boolean', value : false, | ||
| 146 | + description: 'Use gobject introspection tools installed in the host system (useful when cross-compiling)' | ||
| 147 | +) | ||
| 148 | + | ||
| 149 | +option('enable-gi-cross-wrapper', type: 'string', | ||
| 150 | + description: 'Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)' | ||
| 151 | +) | ||
| 152 | + | ||
| 153 | +option('enable-gi-ldd-wrapper', type: 'string', | ||
| 154 | + description: 'Use a ldd wrapper instead of system ldd command in giscanner (useful when cross-compiling)' | ||
| 155 | +) | ||
| 156 | + | ||
| 157 | +option('enable-introspection-data', type: 'boolean', value : true, | ||
| 158 | + description: 'Build introspection data (.gir and .typelib files) in addition to library and tools' | ||
| 159 | +) | ||
| 160 | + | ||
| 161 | +option('pkgconfig-sysroot-path', type: 'string', | ||
| 162 | + description: 'Specify a sysroot path to prepend to pkgconfig output (useful when cross-compiling)' | ||
| 163 | +) | ||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch index a15401aeb2..9d6f5dea3c 100644 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | From 673623851fb70c0e43cf79cef67b3751432ebe72 Mon Sep 17 00:00:00 2001 | 1 | From 8dfb44450ca9fffc15977e95eadcb7054ab60a9a Mon Sep 17 00:00:00 2001 |
| 2 | From: Sascha Silbe <x-yo17@se-silbe.de> | 2 | From: Sascha Silbe <x-yo17@se-silbe.de> |
| 3 | Date: Fri, 8 Jun 2018 13:55:10 +0200 | 3 | Date: Fri, 8 Jun 2018 13:55:10 +0200 |
| 4 | Subject: [PATCH] Relocate the repository directory for native builds | 4 | Subject: [PATCH] Relocate the repository directory for native builds |
| @@ -21,7 +21,7 @@ Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de> | |||
| 21 | 2 files changed, 14 insertions(+), 3 deletions(-) | 21 | 2 files changed, 14 insertions(+), 3 deletions(-) |
| 22 | 22 | ||
| 23 | diff --git a/girepository/girepository.c b/girepository/girepository.c | 23 | diff --git a/girepository/girepository.c b/girepository/girepository.c |
| 24 | index ca5dc2b..7a4d17f 100644 | 24 | index b7948d6..39a2586 100644 |
| 25 | --- a/girepository/girepository.c | 25 | --- a/girepository/girepository.c |
| 26 | +++ b/girepository/girepository.c | 26 | +++ b/girepository/girepository.c |
| 27 | @@ -21,6 +21,8 @@ | 27 | @@ -21,6 +21,8 @@ |
| @@ -42,7 +42,7 @@ index ca5dc2b..7a4d17f 100644 | |||
| 42 | /** | 42 | /** |
| 43 | * SECTION:girepository | 43 | * SECTION:girepository |
| 44 | * @short_description: GObject Introspection repository manager | 44 | * @short_description: GObject Introspection repository manager |
| 45 | @@ -212,9 +216,16 @@ init_globals (void) | 45 | @@ -215,9 +219,16 @@ init_globals (void) |
| 46 | g_free (custom_dirs); | 46 | g_free (custom_dirs); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| @@ -62,7 +62,7 @@ index ca5dc2b..7a4d17f 100644 | |||
| 62 | typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir); | 62 | typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir); |
| 63 | 63 | ||
| 64 | diff --git a/girepository/meson.build b/girepository/meson.build | 64 | diff --git a/girepository/meson.build b/girepository/meson.build |
| 65 | index 1d7aed6..5637fb5 100644 | 65 | index 204659f..3e61d31 100644 |
| 66 | --- a/girepository/meson.build | 66 | --- a/girepository/meson.build |
| 67 | +++ b/girepository/meson.build | 67 | +++ b/girepository/meson.build |
| 68 | @@ -44,7 +44,7 @@ girepo_internals_lib = static_library('girepository-internals', | 68 | @@ -44,7 +44,7 @@ girepo_internals_lib = static_library('girepository-internals', |
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch deleted file mode 100644 index ddd955354d..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch +++ /dev/null | |||
| @@ -1,70 +0,0 @@ | |||
| 1 | From 6653c28f0b76aad86e26c512b03efcec6d9d9e95 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 3 | Date: Wed, 3 Jan 2018 17:02:01 +0200 | ||
| 4 | Subject: [PATCH] giscanner: add a --lib-dirs-envvar option | ||
| 5 | |||
| 6 | By default LD_LIBRARY_PATH is set to the list of target library paths; | ||
| 7 | this breaks down in cross-compilation environment, as we need to run a | ||
| 8 | native emulation wrapper rather than the target binary itself. This patch | ||
| 9 | allows exporting those paths to a different environment variable | ||
| 10 | which can be picked up and used by the wrapper. | ||
| 11 | |||
| 12 | Upstream-Status: Pending | ||
| 13 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 14 | |||
| 15 | --- | ||
| 16 | giscanner/ccompiler.py | 4 ++-- | ||
| 17 | giscanner/dumper.py | 3 ++- | ||
| 18 | giscanner/scannermain.py | 3 +++ | ||
| 19 | 3 files changed, 7 insertions(+), 3 deletions(-) | ||
| 20 | |||
| 21 | diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py | ||
| 22 | index 32c9296..3fb262b 100644 | ||
| 23 | --- a/giscanner/ccompiler.py | ||
| 24 | +++ b/giscanner/ccompiler.py | ||
| 25 | @@ -174,7 +174,7 @@ class CCompiler(object): | ||
| 26 | |||
| 27 | self._cflags_no_deprecation_warnings = "-Wno-deprecated-declarations" | ||
| 28 | |||
| 29 | - def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths): | ||
| 30 | + def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths, lib_dirs_envvar): | ||
| 31 | # An "internal" link is where the library to be introspected | ||
| 32 | # is being built in the current directory. | ||
| 33 | |||
| 34 | @@ -184,7 +184,7 @@ class CCompiler(object): | ||
| 35 | if os.name == 'nt': | ||
| 36 | runtime_path_envvar = ['LIB', 'PATH'] | ||
| 37 | else: | ||
| 38 | - runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH'] | ||
| 39 | + runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH'] if not lib_dirs_envvar else [lib_dirs_envvar] | ||
| 40 | # Search the current directory first | ||
| 41 | # (This flag is not supported nor needed for Visual C++) | ||
| 42 | args.append('-L.') | ||
| 43 | diff --git a/giscanner/dumper.py b/giscanner/dumper.py | ||
| 44 | index 2b851a5..10a7c39 100644 | ||
| 45 | --- a/giscanner/dumper.py | ||
| 46 | +++ b/giscanner/dumper.py | ||
| 47 | @@ -244,7 +244,8 @@ class DumpCompiler(object): | ||
| 48 | libtool, | ||
| 49 | self._options.libraries, | ||
| 50 | self._options.extra_libraries, | ||
| 51 | - self._options.library_paths) | ||
| 52 | + self._options.library_paths, | ||
| 53 | + self._options.lib_dirs_envvar) | ||
| 54 | args.extend(pkg_config_libs) | ||
| 55 | |||
| 56 | else: | ||
| 57 | diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py | ||
| 58 | index 9013562..9c9fe12 100644 | ||
| 59 | --- a/giscanner/scannermain.py | ||
| 60 | +++ b/giscanner/scannermain.py | ||
| 61 | @@ -126,6 +126,9 @@ def _get_option_parser(): | ||
| 62 | parser.add_option("", "--use-ldd-wrapper", | ||
| 63 | action="store", dest="ldd_wrapper", default=None, | ||
| 64 | help="wrapper to use instead of ldd (useful when cross-compiling)") | ||
| 65 | + parser.add_option("", "--lib-dirs-envvar", | ||
| 66 | + action="store", dest="lib_dirs_envvar", default=None, | ||
| 67 | + help="environment variable to write a list of library directories to (for running the transient binary), instead of standard LD_LIBRARY_PATH") | ||
| 68 | parser.add_option("", "--program-arg", | ||
| 69 | action="append", dest="program_args", default=[], | ||
| 70 | help="extra arguments to program") | ||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch deleted file mode 100644 index c4951b22bb..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | From 2c384187cc22113c0c9b1cd233948118f7c085ef Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 3 | Date: Mon, 25 Mar 2019 13:28:48 +0100 | ||
| 4 | Subject: [PATCH] meson.build: disable tests when cross-compiling | ||
| 5 | |||
| 6 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/64] | ||
| 7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 8 | --- | ||
| 9 | meson.build | 4 +++- | ||
| 10 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
| 11 | |||
| 12 | diff --git a/meson.build b/meson.build | ||
| 13 | index 2544ff3..4c16fe5 100644 | ||
| 14 | --- a/meson.build | ||
| 15 | +++ b/meson.build | ||
| 16 | @@ -168,7 +168,9 @@ if get_option('enable-introspection-data') == true | ||
| 17 | endif | ||
| 18 | subdir('examples') | ||
| 19 | subdir('docs') | ||
| 20 | -subdir('tests') | ||
| 21 | +if not meson.is_cross_build() | ||
| 22 | + subdir('tests') | ||
| 23 | +endif | ||
| 24 | |||
| 25 | install_data('Makefile.introspection', install_dir: join_paths(get_option('datadir'), 'gobject-introspection-1.0')) | ||
| 26 | install_data('m4/introspection.m4', install_dir: join_paths(get_option('datadir'), 'aclocal')) | ||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch deleted file mode 100644 index b954dcebd8..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | From 5f985fd8a24764ccb38af6335d4584d7e33fc3a1 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 3 | Date: Mon, 19 Oct 2015 18:26:40 +0300 | ||
| 4 | Subject: [PATCH] giscanner: add --use-binary-wrapper option | ||
| 5 | |||
| 6 | With this option, giscanner will use a wrapper executable to run | ||
| 7 | binaries it's producing, instead of running them directly. This | ||
| 8 | is useful when binaries are cross-compiled and cannot be run directly, | ||
| 9 | but they can be run using for example QEMU emulation. | ||
| 10 | |||
| 11 | Upstream-Status: Pending [review on oe-core list] | ||
| 12 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 13 | |||
| 14 | --- | ||
| 15 | giscanner/scannermain.py | 14 ++++++++++++++ | ||
| 16 | 1 file changed, 14 insertions(+) | ||
| 17 | |||
| 18 | diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py | ||
| 19 | index c004fb1..0b6a2d2 100644 | ||
| 20 | --- a/giscanner/scannermain.py | ||
| 21 | +++ b/giscanner/scannermain.py | ||
| 22 | @@ -120,6 +120,9 @@ def _get_option_parser(): | ||
| 23 | parser.add_option("", "--program", | ||
| 24 | action="store", dest="program", default=None, | ||
| 25 | help="program to execute") | ||
| 26 | + parser.add_option("", "--use-binary-wrapper", | ||
| 27 | + action="store", dest="wrapper", default=None, | ||
| 28 | + help="wrapper to use for running programs (useful when cross-compiling)") | ||
| 29 | parser.add_option("", "--program-arg", | ||
| 30 | action="append", dest="program_args", default=[], | ||
| 31 | help="extra arguments to program") | ||
| 32 | @@ -417,6 +420,17 @@ def create_binary(transformer, options, args): | ||
| 33 | gdump_parser.get_error_quark_functions()) | ||
| 34 | |||
| 35 | shlibs = resolve_shlibs(options, binary, options.libraries) | ||
| 36 | + if options.wrapper: | ||
| 37 | + # The wrapper needs the binary itself, not the libtool wrapper script, | ||
| 38 | + # so we check if libtool has sneaked the binary into .libs subdirectory | ||
| 39 | + # and adjust the path accordingly | ||
| 40 | + import os.path | ||
| 41 | + dir_name, binary_name = os.path.split(binary.args[0]) | ||
| 42 | + libtool_binary = os.path.join(dir_name, '.libs', binary_name) | ||
| 43 | + if os.path.exists(libtool_binary): | ||
| 44 | + binary.args[0] = libtool_binary | ||
| 45 | + # Then prepend the wrapper to the command line to execute | ||
| 46 | + binary.args = [options.wrapper] + binary.args | ||
| 47 | gdump_parser.set_introspection_binary(binary) | ||
| 48 | gdump_parser.parse() | ||
| 49 | return shlibs | ||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch deleted file mode 100644 index 79264ed086..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch +++ /dev/null | |||
| @@ -1,45 +0,0 @@ | |||
| 1 | From cba7807888a4a1f1d630d16c51c89859209334b3 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 3 | Date: Fri, 30 Oct 2015 16:28:46 +0200 | ||
| 4 | Subject: [PATCH] giscanner: add a --use-ldd-wrapper option | ||
| 5 | |||
| 6 | This is useful in cross-compile environments where system's ldd | ||
| 7 | command does not work on binaries built for a different architecture | ||
| 8 | |||
| 9 | Upstream-Status: Pending [review in oe-core] | ||
| 10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 11 | |||
| 12 | --- | ||
| 13 | giscanner/scannermain.py | 3 +++ | ||
| 14 | giscanner/shlibs.py | 4 +++- | ||
| 15 | 2 files changed, 6 insertions(+), 1 deletion(-) | ||
| 16 | |||
| 17 | diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py | ||
| 18 | index 0b6a2d2..9013562 100644 | ||
| 19 | --- a/giscanner/scannermain.py | ||
| 20 | +++ b/giscanner/scannermain.py | ||
| 21 | @@ -123,6 +123,9 @@ def _get_option_parser(): | ||
| 22 | parser.add_option("", "--use-binary-wrapper", | ||
| 23 | action="store", dest="wrapper", default=None, | ||
| 24 | help="wrapper to use for running programs (useful when cross-compiling)") | ||
| 25 | + parser.add_option("", "--use-ldd-wrapper", | ||
| 26 | + action="store", dest="ldd_wrapper", default=None, | ||
| 27 | + help="wrapper to use instead of ldd (useful when cross-compiling)") | ||
| 28 | parser.add_option("", "--program-arg", | ||
| 29 | action="append", dest="program_args", default=[], | ||
| 30 | help="extra arguments to program") | ||
| 31 | diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py | ||
| 32 | index 2c61f2f..d67df95 100644 | ||
| 33 | --- a/giscanner/shlibs.py | ||
| 34 | +++ b/giscanner/shlibs.py | ||
| 35 | @@ -96,7 +96,9 @@ def _resolve_non_libtool(options, binary, libraries): | ||
| 36 | args.extend(libtool) | ||
| 37 | args.append('--mode=execute') | ||
| 38 | platform_system = platform.system() | ||
| 39 | - if platform_system == 'Darwin': | ||
| 40 | + if options.ldd_wrapper: | ||
| 41 | + args.extend([options.ldd_wrapper, binary.args[0]]) | ||
| 42 | + elif platform_system == 'Darwin': | ||
| 43 | args.extend(['otool', '-L', binary.args[0]]) | ||
| 44 | else: | ||
| 45 | args.extend(['ldd', binary.args[0]]) | ||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch deleted file mode 100644 index 26f8da6d41..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch +++ /dev/null | |||
| @@ -1,39 +0,0 @@ | |||
| 1 | From 740d91151ffe576e0c08513af9d7bc8133eb9dfb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 3 | Date: Thu, 8 Oct 2015 18:30:35 +0300 | ||
| 4 | Subject: [PATCH] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR | ||
| 5 | environment variable | ||
| 6 | |||
| 7 | This environment variable sets the location of sysroot directory in cross-compilation | ||
| 8 | environments; if the variable is not set, the prefix will be empty. | ||
| 9 | |||
| 10 | Upstream-Status: Pending [review on oe-core list] | ||
| 11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
| 12 | |||
| 13 | --- | ||
| 14 | m4/introspection.m4 | 8 ++++---- | ||
| 15 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/m4/introspection.m4 b/m4/introspection.m4 | ||
| 18 | index d89c3d9..b562266 100644 | ||
| 19 | --- a/m4/introspection.m4 | ||
| 20 | +++ b/m4/introspection.m4 | ||
| 21 | @@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], | ||
| 22 | INTROSPECTION_GIRDIR= | ||
| 23 | INTROSPECTION_TYPELIBDIR= | ||
| 24 | if test "x$found_introspection" = "xyes"; then | ||
| 25 | - INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` | ||
| 26 | - INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` | ||
| 27 | - INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` | ||
| 28 | + INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` | ||
| 29 | + INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` | ||
| 30 | + INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` | ||
| 31 | INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` | ||
| 32 | INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" | ||
| 33 | INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` | ||
| 34 | INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` | ||
| 35 | - INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection | ||
| 36 | + INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection | ||
| 37 | fi | ||
| 38 | AC_SUBST(INTROSPECTION_SCANNER) | ||
| 39 | AC_SUBST(INTROSPECTION_COMPILER) | ||
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb index b1371776af..9dfb55e055 100644 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb | |||
| @@ -14,18 +14,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ | |||
| 14 | " | 14 | " |
| 15 | 15 | ||
| 16 | SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ | 16 | SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ |
| 17 | file://0003-giscanner-add-use-binary-wrapper-option.patch \ | ||
| 18 | file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ | ||
| 19 | file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ | ||
| 20 | file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \ | ||
| 21 | file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \ | 17 | file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \ |
| 22 | file://0001-Port-cross-compilation-support-to-meson.patch \ | ||
| 23 | file://0001-meson.build-disable-tests-when-cross-compiling.patch \ | ||
| 24 | file://0001-Fix-build-reproducibility.patch \ | ||
| 25 | " | 18 | " |
| 26 | 19 | ||
| 27 | SRC_URI[md5sum] = "37278eab3704e42234b6080b8cf241f1" | 20 | SRC_URI[md5sum] = "3419dfd086efcf83768e0579ab6abd2b" |
| 28 | SRC_URI[sha256sum] = "b1ee7ed257fdbc008702bdff0ff3e78a660e7e602efa8f211dc89b9d1e7d90a2" | 21 | SRC_URI[sha256sum] = "80beae6728c134521926affff9b2e97125749b38d38744dc901f4010ee3e7fa7" |
| 29 | 22 | ||
| 30 | SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" | 23 | SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" |
| 31 | 24 | ||
| @@ -49,16 +42,16 @@ export STAGING_DIR_HOST | |||
| 49 | export B | 42 | export B |
| 50 | 43 | ||
| 51 | PACKAGECONFIG ?= "" | 44 | PACKAGECONFIG ?= "" |
| 52 | PACKAGECONFIG[doctool] = "-Ddoctool=true,-Ddoctool=false,python3-mako," | 45 | PACKAGECONFIG[doctool] = "-Ddoctool=enabled,-Ddoctool=disabled,python3-mako," |
| 53 | 46 | ||
| 54 | # Configure target build to use native tools of itself and to use a qemu wrapper | 47 | # Configure target build to use native tools of itself and to use a qemu wrapper |
| 55 | # and optionally to generate introspection data | 48 | # and optionally to generate introspection data |
| 56 | EXTRA_OEMESON_class-target = " \ | 49 | EXTRA_OEMESON_class-target = " \ |
| 57 | -Denable-host-gi=true \ | 50 | -Dgi_cross_use_host_gi=true \ |
| 58 | -Denable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ | 51 | -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \ |
| 59 | -Denable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ | 52 | -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \ |
| 60 | -Dpkgconfig-sysroot-path=${PKG_CONFIG_SYSROOT_DIR} \ | 53 | -Dgi_cross_pkgconfig_sysroot_path=${PKG_CONFIG_SYSROOT_DIR} \ |
| 61 | ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Denable-introspection-data=true', '-Denable-introspection-data=false', d)} \ | 54 | ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dbuild_introspection_data=true', '-Dbuild_introspection_data=false', d)} \ |
| 62 | ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ | 55 | ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ |
| 63 | " | 56 | " |
| 64 | 57 | ||
