Skip to content

Commit

Permalink
ninja: Use single target for Swift module and object files
Browse files Browse the repository at this point in the history
Newer toolchains support it.
  • Loading branch information
oleavr committed Apr 11, 2024
1 parent 4ad67d8 commit 5b58e86
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions mesonbuild/backend/ninjabackend.py
Original file line number Diff line number Diff line change
Expand Up @@ -2193,7 +2193,8 @@ def generate_swift_target(self, target):
else:
raise InvalidArguments(f'Swift target {target.get_basename()} contains a non-swift source file.')
os.makedirs(self.get_target_private_dir_abs(target), exist_ok=True)
compile_args = swiftc.get_compile_only_args()
compile_args = swiftc.get_mod_gen_args()
compile_args += swiftc.get_compile_only_args()
compile_args += swiftc.get_optimization_args(target.get_option(OptionKey('optimization')))
compile_args += swiftc.get_debug_args(target.get_option(OptionKey('debug')))
compile_args += swiftc.get_module_args(module_name)
Expand Down Expand Up @@ -2244,18 +2245,12 @@ def generate_swift_target(self, target):

rulename = self.compiler_to_rule_name(swiftc)

# 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 = NinjaBuildElement(self.all_outputs, [out_module_name] + rel_objects, rulename, abssrc)
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 + 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)
if isinstance(target, build.StaticLibrary):
elem = self.generate_link(target, self.get_target_filename(target),
rel_objects, self.build.static_linker[target.for_machine])
Expand Down

0 comments on commit 5b58e86

Please sign in to comment.