diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-04-02 11:12:10 +0200 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-04-02 11:21:05 +0200 |
commit | 1937bbafac07df48e78fea96a8c3c086db564574 (patch) | |
tree | aeef1d51c9b02f37ba6cc5d008367505dbe3b2af | |
parent | 75219989ca468923142738d93df8aef64e897b8e (diff) | |
download | meson-1937bbafac07df48e78fea96a8c3c086db564574.zip meson-1937bbafac07df48e78fea96a8c3c086db564574.tar.gz meson-1937bbafac07df48e78fea96a8c3c086db564574.tar.bz2 |
mintro: Fix crash when required is a function (closes #5177)
-rw-r--r-- | mesonbuild/ast/introspection.py | 2 | ||||
-rwxr-xr-x | run_unittests.py | 8 | ||||
-rw-r--r-- | test cases/unit/55 introspection/meson.build | 1 | ||||
-rw-r--r-- | test cases/unit/55 introspection/meson_options.txt | 1 |
4 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/ast/introspection.py b/mesonbuild/ast/introspection.py index 5745d29..fd7b412 100644 --- a/mesonbuild/ast/introspection.py +++ b/mesonbuild/ast/introspection.py @@ -142,6 +142,8 @@ class IntrospectionInterpreter(AstInterpreter): condition_level = node.condition_level if hasattr(node, 'condition_level') else 0 if isinstance(required, ElementaryNode): required = required.value + if not isinstance(required, bool): + required = False self.dependencies += [{ 'name': name, 'required': required, diff --git a/run_unittests.py b/run_unittests.py index 7ceb553..bc28eea 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -3408,7 +3408,7 @@ recommended as it is not supported on some platforms''') self.assertDictEqual(buildopts_to_find, {}) # Check buildsystem_files - bs_files = ['meson.build', 'sharedlib/meson.build', 'staticlib/meson.build'] + bs_files = ['meson.build', 'meson_options.txt', 'sharedlib/meson.build', 'staticlib/meson.build'] bs_files = [os.path.join(testdir, x) for x in bs_files] self.assertPathListEqual(list(sorted(res['buildsystem_files'])), list(sorted(bs_files))) @@ -3560,6 +3560,12 @@ recommended as it is not supported on some platforms''') 'conditional': False }, { + 'name': 'bugDep1', + 'required': False, + 'has_fallback': False, + 'conditional': False + }, + { 'name': 'somethingthatdoesnotexist', 'required': True, 'has_fallback': False, diff --git a/test cases/unit/55 introspection/meson.build b/test cases/unit/55 introspection/meson.build index 98f6f22..15eb1ed 100644 --- a/test cases/unit/55 introspection/meson.build +++ b/test cases/unit/55 introspection/meson.build @@ -2,6 +2,7 @@ project('introspection', ['c', 'cpp'], version: '1.2.3', default_options: ['cpp_ dep1 = dependency('threads') dep2 = dependency('zlib', required: false) +dep3 = dependency('bugDep1', required: get_option('test_opt1')) if false dependency('somethingthatdoesnotexist', required: true) diff --git a/test cases/unit/55 introspection/meson_options.txt b/test cases/unit/55 introspection/meson_options.txt new file mode 100644 index 0000000..b2956c8 --- /dev/null +++ b/test cases/unit/55 introspection/meson_options.txt @@ -0,0 +1 @@ +option('test_opt1', type: 'boolean', value: false, description: 'simple boolean flag') |