diff --git a/mesonbuild/ast/introspection.py b/mesonbuild/ast/introspection.py index 5745d298a..fd7b41265 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 7ceb5538c..bc28eea02 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))) @@ -3559,6 +3559,12 @@ recommended as it is not supported on some platforms''') 'has_fallback': False, 'conditional': False }, + { + 'name': 'bugDep1', + 'required': False, + 'has_fallback': False, + 'conditional': False + }, { 'name': 'somethingthatdoesnotexist', 'required': True, diff --git a/test cases/unit/55 introspection/meson.build b/test cases/unit/55 introspection/meson.build index 98f6f226f..15eb1ed6d 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 000000000..b2956c810 --- /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')