Skip to content

#14251 broke not updating the coredata file if options didn't change when running meson setup again when the same option is specified multiple times #14754

Closed
@DaanDeMeyer

Description

@DaanDeMeyer

Describe the bug

Before #14251, running the following meson command in systemd did not cause meson to reconfigure when running ninja -C build, since #14251 it does cause meson to reconfigure even if mode was already set to developer before:

meson setup -Dmode=release -Dmode=developer build

The issue is that since #14251, setting options loops over the full raw list of options, whereas before #14251, setting options looped over the deduplicated list of options, with latter options overriding previous ones. Now, mode=release is processed, and since it's not equal to developer, meson thinks the value has changed and the coredata file needs to be rewritten, even though the option is set to developer again later.

To Reproduce

Take any simple meson C project, and run the following:

meson setup -Db_sanitize=address build
ninja -C build
meson setup -Db_sanitize=thread -Db_sanitize=address build
ninja -C build

Expected behavior

The second call to ninja -C build should not cause meson to reconfigure, but it does.

system parameters

  • Is this a cross build or just a plain native build (for the same computer)? Native
  • what operating system (e.g. MacOS Catalina, Windows 10, CentOS 8.0, Ubuntu 18.04, etc.) Fedora 42
  • what Python version are you using e.g. 3.8.0 Python 3.14
  • what meson --version running meson from master
  • what ninja --version if it's a Ninja build 1.12.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions