@@ -471,7 +471,9 @@ def generate_ninja(self, build_dir, libname):
471
471
cflags = self .get_cflags ()
472
472
if self .deterministic_paths :
473
473
source_dir = utils .path_from_root ()
474
+ relative_source_dir = os .path .relpath (source_dir , build_dir )
474
475
cflags += [f'-ffile-prefix-map={ source_dir } =/emsdk/emscripten' ,
476
+ f'-ffile-prefix-map={ relative_source_dir } /=' ,
475
477
'-fdebug-compilation-dir=/emsdk/emscripten' ]
476
478
asflags = get_base_cflags (preprocess = False )
477
479
input_files = self .get_files ()
@@ -491,7 +493,9 @@ def build_objects(self, build_dir):
491
493
cflags = self .get_cflags ()
492
494
if self .deterministic_paths :
493
495
source_dir = utils .path_from_root ()
496
+ relative_source_dir = os .path .relpath (source_dir , build_dir )
494
497
cflags += [f'-ffile-prefix-map={ source_dir } =/emsdk/emscripten' ,
498
+ f'-ffile-prefix-map={ relative_source_dir } /=' ,
495
499
'-fdebug-compilation-dir=/emsdk/emscripten' ]
496
500
case_insensitive = is_case_insensitive (build_dir )
497
501
for src in self .get_files ():
@@ -531,6 +535,7 @@ def build_objects(self, build_dir):
531
535
# Use relative paths to reduce the length of the command line.
532
536
# This allows to avoid switching to a response file as often.
533
537
src = os .path .relpath (src , build_dir )
538
+ src = utils .normalize_path (src )
534
539
batches .setdefault (tuple (cmd ), []).append (src )
535
540
objects .add (o )
536
541
0 commit comments