diff options
author | Bernhard M. Wiedemann <bwiedemann@suse.de> | 2018-08-28 20:40:51 +0200 |
---|---|---|
committer | Bernhard M. Wiedemann <bwiedemann@suse.de> | 2018-08-29 10:24:07 +0200 |
commit | 83b856c0465c40ecd9768508f31d3e337e1a64e1 (patch) | |
tree | 77538363418bd2995d6dead0f0c8c709ecac43e2 | |
parent | f3125823268c414e7538d440cffe3c8a95294cad (diff) |
BuildSystem: Sort input file lists
so that godot package builds reproducibly
in spite of indeterministic filesystem readdir order
and http://bugs.python.org/issue30461
See https://reproducible-builds.org/ for why this is good.
Sort font input file list, so that builtin_fonts.gen.h
is created in a reproducible way
Sort list of platforms, so that editor/register_exporters.gen.cpp
is created in a reproducible way
Sort list of source files, so that .a files and resulting godot binaries
are created in a reproducible way
-rw-r--r-- | SConstruct | 2 | ||||
-rw-r--r-- | editor/SCsub | 1 | ||||
-rw-r--r-- | methods.py | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/SConstruct b/SConstruct index 2cc486fd1b..3bbe97bfe7 100644 --- a/SConstruct +++ b/SConstruct @@ -23,7 +23,7 @@ platform_exporters = [] platform_apis = [] global_defaults = [] -for x in glob.glob("platform/*"): +for x in sorted(glob.glob("platform/*")): if (not os.path.isdir(x) or not os.path.exists(x + "/detect.py")): continue tmppath = "./" + x diff --git a/editor/SCsub b/editor/SCsub index 75dc188b86..d9bdf42d6f 100644 --- a/editor/SCsub +++ b/editor/SCsub @@ -77,6 +77,7 @@ if env['tools']: # Fonts flist = glob.glob(path + "/../thirdparty/fonts/*.ttf") flist.extend(glob.glob(path + "/../thirdparty/fonts/*.otf")) + flist.sort() env.Depends('#editor/builtin_fonts.gen.h', flist) env.CommandNoCache('#editor/builtin_fonts.gen.h', flist, run_in_subprocess(editor_builders.make_fonts_header)) diff --git a/methods.py b/methods.py index 7aa06f04b8..1bc10954ba 100644 --- a/methods.py +++ b/methods.py @@ -13,7 +13,7 @@ def add_source_files(self, sources, filetype, lib_env=None, shared=False): if isbasestring(filetype): dir_path = self.Dir('.').abspath - filetype = glob.glob(dir_path + "/" + filetype) + filetype = sorted(glob.glob(dir_path + "/" + filetype)) for path in filetype: sources.append(self.Object(path)) |