diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2022-06-14 09:01:04 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2022-06-14 16:01:20 -0400 |
commit | d85a9733e6af45c9e3111f23ecec9e614eaeaeeb (patch) | |
tree | e87cb782752a2ab8af84986f2ef47787d628ff48 /test cases | |
parent | e559ea0b7c96f2436d82ed9f94fe78d7c2aaef1d (diff) | |
download | meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.zip meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.tar.gz meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.tar.bz2 |
Fix crash when a reconfigure adds a new subproject
When a subproject is disabled on the initial configuration we should not
add it into self.coredata.initialized_subprojects because that will
prevent calling self.coredata.init_builtins() on a reconfigure if the
subproject gets enabled.
Fixes: #10225.
Diffstat (limited to 'test cases')
4 files changed, 14 insertions, 0 deletions
diff --git a/test cases/unit/107 new subproject on reconfigure/meson.build b/test cases/unit/107 new subproject on reconfigure/meson.build new file mode 100644 index 0000000..7342c9a --- /dev/null +++ b/test cases/unit/107 new subproject on reconfigure/meson.build @@ -0,0 +1,3 @@ +project('New subproject on reconfigure') + +subproject('foo', required: get_option('foo')) diff --git a/test cases/unit/107 new subproject on reconfigure/meson_options.txt b/test cases/unit/107 new subproject on reconfigure/meson_options.txt new file mode 100644 index 0000000..b3dd683 --- /dev/null +++ b/test cases/unit/107 new subproject on reconfigure/meson_options.txt @@ -0,0 +1 @@ +option('foo', type: 'feature', value: 'disabled') diff --git a/test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c new file mode 100644 index 0000000..1edf995 --- /dev/null +++ b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c @@ -0,0 +1,2 @@ +void foo(void); +void foo(void) {} diff --git a/test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build new file mode 100644 index 0000000..2a6e30a --- /dev/null +++ b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build @@ -0,0 +1,8 @@ +project('foo', 'c') + +# Ensure that builtin options have been initialised. +assert(get_option('default_library') == 'shared') + +# This uses default_library option internally and used to cause a crash: +# https://github.com/mesonbuild/meson/issues/10225. +library('foo', 'foo.c') |