From 2db11f1383e3d9c59f54f4a742bd44ad85dce226 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Mon, 3 Apr 2017 17:03:56 +0100 Subject: Sort user commandline options when generating 'scan-build' target We receive these options from the 'argparse' module in a random order. To ensure the build.ninja file doesn't include random variations we should sort them before writing them back out. --- mesonbuild/backend/ninjabackend.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index f29a7be..63db854 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -2276,7 +2276,10 @@ rule FORTRAN_DEP_HACK cmds = [] for (k, v) in self.environment.coredata.user_options.items(): cmds.append('-D' + k + '=' + (v.value if isinstance(v.value, str) else str(v.value).lower())) - return cmds + # The order of these arguments must be the same between runs of Meson + # to ensure reproducible output. The order we pass them shouldn't + # affect behaviour in any other way. + return sorted(cmds) # For things like scan-build and other helper tools we might have. def generate_utils(self, outfile): -- cgit v1.1