diff --git a/tools/system_libs.py b/tools/system_libs.py index 3b01a85fbf651..ef896f6ec96ac 100644 --- a/tools/system_libs.py +++ b/tools/system_libs.py @@ -471,14 +471,9 @@ def get_files(self): def generate_ninja(self, build_dir, libname): ensure_sysroot() utils.safe_ensure_dirs(build_dir) + self.build_dir = build_dir cflags = self.get_cflags() - if self.deterministic_paths: - source_dir = utils.path_from_root() - relative_source_dir = os.path.relpath(source_dir, build_dir) - cflags += [f'-ffile-prefix-map={source_dir}={DETERMINISITIC_PREFIX}', - f'-ffile-prefix-map={relative_source_dir}={DETERMINISITIC_PREFIX}', - f'-fdebug-compilation-dir={DETERMINISITIC_PREFIX}'] asflags = get_base_cflags(preprocess=False) input_files = self.get_files() ninja_file = os.path.join(build_dir, 'build.ninja') @@ -492,17 +487,11 @@ def build_objects(self, build_dir): with the `cflags` returned by `self.get_cflags()`. """ batch_inputs = int(os.environ.get('EMCC_BATCH_BUILD', '1')) + self.build_dir = build_dir batches = {} commands = [] objects = set() cflags = self.get_cflags() - if self.deterministic_paths: - source_dir = utils.path_from_root() - if batch_inputs: - relative_source_dir = os.path.relpath(source_dir, build_dir) - cflags += [f'-ffile-prefix-map={relative_source_dir}={DETERMINISITIC_PREFIX}'] - cflags += [f'-ffile-prefix-map={source_dir}={DETERMINISITIC_PREFIX}', - f'-fdebug-compilation-dir={DETERMINISITIC_PREFIX}'] case_insensitive = is_case_insensitive(build_dir) for src in self.get_files(): ext = shared.suffix(src) @@ -611,6 +600,12 @@ def get_cflags(self): if self.includes: cflags += ['-I' + utils.path_from_root(i) for i in self._inherit_list('includes')] + if self.deterministic_paths: + source_dir = utils.path_from_root() + relative_source_dir = os.path.relpath(source_dir, self.build_dir) + cflags += [f'-ffile-prefix-map={relative_source_dir}={DETERMINISITIC_PREFIX}'] + cflags += [f'-ffile-prefix-map={source_dir}={DETERMINISITIC_PREFIX}', + f'-fdebug-compilation-dir={DETERMINISITIC_PREFIX}'] return cflags def get_base_name_prefix(self):