Skip to content

Commit 74d95fb

Browse files
authored
Add deterministic prefix in Library.get_flags() (NFC) (#23225)
This factors duplicate routines to add deterministic prefix paths out to `Library.get_cflags()`. Suggested in #23222 (comment).
1 parent 4cbcb26 commit 74d95fb

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

tools/system_libs.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -471,14 +471,9 @@ def get_files(self):
471471
def generate_ninja(self, build_dir, libname):
472472
ensure_sysroot()
473473
utils.safe_ensure_dirs(build_dir)
474+
self.build_dir = build_dir
474475

475476
cflags = self.get_cflags()
476-
if self.deterministic_paths:
477-
source_dir = utils.path_from_root()
478-
relative_source_dir = os.path.relpath(source_dir, build_dir)
479-
cflags += [f'-ffile-prefix-map={source_dir}={DETERMINISITIC_PREFIX}',
480-
f'-ffile-prefix-map={relative_source_dir}={DETERMINISITIC_PREFIX}',
481-
f'-fdebug-compilation-dir={DETERMINISITIC_PREFIX}']
482477
asflags = get_base_cflags(preprocess=False)
483478
input_files = self.get_files()
484479
ninja_file = os.path.join(build_dir, 'build.ninja')
@@ -492,17 +487,11 @@ def build_objects(self, build_dir):
492487
with the `cflags` returned by `self.get_cflags()`.
493488
"""
494489
batch_inputs = int(os.environ.get('EMCC_BATCH_BUILD', '1'))
490+
self.build_dir = build_dir
495491
batches = {}
496492
commands = []
497493
objects = set()
498494
cflags = self.get_cflags()
499-
if self.deterministic_paths:
500-
source_dir = utils.path_from_root()
501-
if batch_inputs:
502-
relative_source_dir = os.path.relpath(source_dir, build_dir)
503-
cflags += [f'-ffile-prefix-map={relative_source_dir}={DETERMINISITIC_PREFIX}']
504-
cflags += [f'-ffile-prefix-map={source_dir}={DETERMINISITIC_PREFIX}',
505-
f'-fdebug-compilation-dir={DETERMINISITIC_PREFIX}']
506495
case_insensitive = is_case_insensitive(build_dir)
507496
for src in self.get_files():
508497
ext = shared.suffix(src)
@@ -611,6 +600,12 @@ def get_cflags(self):
611600
if self.includes:
612601
cflags += ['-I' + utils.path_from_root(i) for i in self._inherit_list('includes')]
613602

603+
if self.deterministic_paths:
604+
source_dir = utils.path_from_root()
605+
relative_source_dir = os.path.relpath(source_dir, self.build_dir)
606+
cflags += [f'-ffile-prefix-map={relative_source_dir}={DETERMINISITIC_PREFIX}']
607+
cflags += [f'-ffile-prefix-map={source_dir}={DETERMINISITIC_PREFIX}',
608+
f'-fdebug-compilation-dir={DETERMINISITIC_PREFIX}']
614609
return cflags
615610

616611
def get_base_name_prefix(self):

0 commit comments

Comments
 (0)