diff options
| author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2019-11-05 23:08:31 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-11-18 14:42:12 +0000 |
| commit | 8855a1ec4de0762038590ff06355af7ba8beea29 (patch) | |
| tree | ede54e4fa0c8da439ef13dae846a02c8d1775c3d | |
| parent | 40ca39df1b8de8ca476c9085442dbc58fb57abb3 (diff) | |
| download | poky-8855a1ec4de0762038590ff06355af7ba8beea29.tar.gz | |
meson: Backport patch to handle strings in cross file args
This allows <language>_args and <language>_link_args properties, e.g.,
c_link_args, in meson.cross to be specified as either a string or a
list.
(From OE-Core rev: 1913e688ad95d465e9b9d16ad57f2bdef2b50d93)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-devtools/meson/meson.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-devtools/meson/meson/0001-Handle-strings-in-cross-file-args.-Closes-4671.patch | 87 |
2 files changed, 88 insertions, 0 deletions
diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc index bfe9851e94..ef26848498 100644 --- a/meta/recipes-devtools/meson/meson.inc +++ b/meta/recipes-devtools/meson/meson.inc | |||
| @@ -17,6 +17,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P | |||
| 17 | file://many-cross.patch \ | 17 | file://many-cross.patch \ |
| 18 | file://cross-libdir.patch \ | 18 | file://cross-libdir.patch \ |
| 19 | file://0001-Fix-missing-return-statements-that-are-seen-with-Wer.patch \ | 19 | file://0001-Fix-missing-return-statements-that-are-seen-with-Wer.patch \ |
| 20 | file://0001-Handle-strings-in-cross-file-args.-Closes-4671.patch \ | ||
| 20 | " | 21 | " |
| 21 | SRC_URI[sha256sum] = "ef9f14326ec1e30d3ba1a26df0f92826ede5a79255ad723af78a2691c37109fd" | 22 | SRC_URI[sha256sum] = "ef9f14326ec1e30d3ba1a26df0f92826ede5a79255ad723af78a2691c37109fd" |
| 22 | SRC_URI[md5sum] = "0267b0871266056184c484792572c682" | 23 | SRC_URI[md5sum] = "0267b0871266056184c484792572c682" |
diff --git a/meta/recipes-devtools/meson/meson/0001-Handle-strings-in-cross-file-args.-Closes-4671.patch b/meta/recipes-devtools/meson/meson/0001-Handle-strings-in-cross-file-args.-Closes-4671.patch new file mode 100644 index 0000000000..1b1668e4ce --- /dev/null +++ b/meta/recipes-devtools/meson/meson/0001-Handle-strings-in-cross-file-args.-Closes-4671.patch | |||
| @@ -0,0 +1,87 @@ | |||
| 1 | From 4818b27894c828a50befc94f1bc9062e89a544ea Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jussi Pakkanen <jpakkane@gmail.com> | ||
| 3 | Date: Sat, 29 Dec 2018 18:23:36 +0200 | ||
| 4 | Subject: [PATCH] Handle strings in cross file args. Closes #4671. | ||
| 5 | |||
| 6 | Upstream-Status: Backport [6c76ac80173bdc40d35e2d6b802f7950646781dc] | ||
| 7 | Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> | ||
| 8 | |||
| 9 | --- | ||
| 10 | |||
| 11 | Note that the change to ninjabackend.py does not come from commit | ||
| 12 | 6c76ac80, as it was not corrected until commit 2b22576f. However, | ||
| 13 | since that commit is huge and changes a lot of unrelated stuff, it was | ||
| 14 | easier to include the relevant part here. | ||
| 15 | |||
| 16 | cross/ubuntu-armhf.txt | 2 +- | ||
| 17 | mesonbuild/backend/ninjabackend.py | 2 +- | ||
| 18 | mesonbuild/compilers/compilers.py | 4 ++-- | ||
| 19 | test cases/common/137 get define/meson.build | 12 +++--------- | ||
| 20 | 4 files changed, 7 insertions(+), 13 deletions(-) | ||
| 21 | |||
| 22 | diff --git a/cross/ubuntu-armhf.txt b/cross/ubuntu-armhf.txt | ||
| 23 | index fec8ce7..a6e1f15 100644 | ||
| 24 | --- a/cross/ubuntu-armhf.txt | ||
| 25 | +++ b/cross/ubuntu-armhf.txt | ||
| 26 | @@ -12,7 +12,7 @@ pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config' | ||
| 27 | root = '/usr/arm-linux-gnueabihf' | ||
| 28 | # Used in unit test '140 get define' | ||
| 29 | c_args = ['-DMESON_TEST_ISSUE_1665=1'] | ||
| 30 | -cpp_args = ['-DMESON_TEST_ISSUE_1665=1'] | ||
| 31 | +cpp_args = '-DMESON_TEST_ISSUE_1665=1' | ||
| 32 | |||
| 33 | has_function_printf = true | ||
| 34 | has_function_hfkerhisadf = false | ||
| 35 | diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py | ||
| 36 | index 3739c0a..2cebeef 100644 | ||
| 37 | --- a/mesonbuild/backend/ninjabackend.py | ||
| 38 | +++ b/mesonbuild/backend/ninjabackend.py | ||
| 39 | @@ -1400,7 +1400,7 @@ int dummy; | ||
| 40 | if is_cross: | ||
| 41 | crstr = '_CROSS' | ||
| 42 | try: | ||
| 43 | - cross_args = self.environment.cross_info.config['properties'][langname + '_link_args'] | ||
| 44 | + cross_args = mesonlib.stringlistify(self.environment.cross_info.config['properties'][langname + '_link_args']) | ||
| 45 | except KeyError: | ||
| 46 | pass | ||
| 47 | rule = 'rule %s%s_LINKER\n' % (langname, crstr) | ||
| 48 | diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py | ||
| 49 | index e27ae2b..a5b9e91 100644 | ||
| 50 | --- a/mesonbuild/compilers/compilers.py | ||
| 51 | +++ b/mesonbuild/compilers/compilers.py | ||
| 52 | @@ -1048,10 +1048,10 @@ class Compiler: | ||
| 53 | if 'properties' in environment.cross_info.config: | ||
| 54 | props = environment.cross_info.config['properties'] | ||
| 55 | lang_args_key = self.language + '_args' | ||
| 56 | - extra_flags += props.get(lang_args_key, []) | ||
| 57 | + extra_flags += mesonlib.stringlistify(props.get(lang_args_key, [])) | ||
| 58 | lang_link_args_key = self.language + '_link_args' | ||
| 59 | if link: | ||
| 60 | - extra_flags += props.get(lang_link_args_key, []) | ||
| 61 | + extra_flags += mesonlib.stringlistify(props.get(lang_link_args_key, [])) | ||
| 62 | return extra_flags | ||
| 63 | |||
| 64 | def _get_compile_output(self, dirname, mode): | ||
| 65 | diff --git a/test cases/common/137 get define/meson.build b/test cases/common/137 get define/meson.build | ||
| 66 | index 109f628..1647e22 100644 | ||
| 67 | --- a/test cases/common/137 get define/meson.build | ||
| 68 | +++ b/test cases/common/137 get define/meson.build | ||
| 69 | @@ -67,15 +67,9 @@ foreach lang : ['c', 'cpp'] | ||
| 70 | |||
| 71 | run_1665_test = false | ||
| 72 | if meson.is_cross_build() | ||
| 73 | - # Can't use an empty array as a fallback here because of | ||
| 74 | - # https://github.com/mesonbuild/meson/issues/1481 | ||
| 75 | - lang_args = meson.get_cross_property(lang + '_args', []) | ||
| 76 | - if lang_args.length() != 0 | ||
| 77 | - foreach lang_arg : lang_args | ||
| 78 | - if lang_arg.contains('MESON_TEST_ISSUE_1665') | ||
| 79 | - run_1665_test = true | ||
| 80 | - endif | ||
| 81 | - endforeach | ||
| 82 | + lang_arg = meson.get_cross_property(lang + '_args', '') | ||
| 83 | + if lang_arg == '-DMESON_TEST_ISSUE_1665=1' | ||
| 84 | + run_1665_test = true | ||
| 85 | endif | ||
| 86 | endif | ||
| 87 | |||
