Skip to content

Commit

Permalink
ninja: Make Swift targets depend on non-Swift generated sources
Browse files Browse the repository at this point in the history
Essential when a module.modulemap is generated, or any generated header
files referenced by a modulemap.
  • Loading branch information
oleavr committed Apr 9, 2024
1 parent 62a1ccc commit 6584539
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions mesonbuild/backend/ninjabackend.py
Original file line number Diff line number Diff line change
Expand Up @@ -2208,7 +2208,7 @@ def generate_swift_target(self, target):
if reldir == '':
reldir = '.'
link_args += ['-L', os.path.normpath(os.path.join(self.environment.get_build_dir(), reldir))]
(rel_generated, _) = self.split_swift_generated_sources(target)
(rel_generated, other_generated) = self.split_swift_generated_sources(target)
abs_generated = [os.path.join(self.environment.get_build_dir(), x) for x in rel_generated]
# We need absolute paths because swiftc needs to be invoked in a subdir
# and this is the easiest way about it.
Expand All @@ -2224,13 +2224,13 @@ def generate_swift_target(self, target):

# Swiftc does not seem to be able to emit objects and module files in one go.
elem = NinjaBuildElement(self.all_outputs, rel_objects, rulename, abssrc)
elem.add_dep(in_module_files + rel_generated)
elem.add_dep(in_module_files + rel_generated + other_generated)
elem.add_dep(abs_headers)
elem.add_item('ARGS', compile_args + header_imports + abs_generated + module_includes)
elem.add_item('RUNDIR', rundir)
self.add_build(elem)
elem = NinjaBuildElement(self.all_outputs, out_module_name, rulename, abssrc)
elem.add_dep(in_module_files + rel_generated)
elem.add_dep(in_module_files + rel_generated + other_generated)
elem.add_item('ARGS', compile_args + abs_generated + module_includes + swiftc.get_mod_gen_args())
elem.add_item('RUNDIR', rundir)
self.add_build(elem)
Expand Down

0 comments on commit 6584539

Please sign in to comment.