Also cleanup custom target paths for not installed not default targets

pull/1490/head
Thibault Saunier 8 years ago committed by Jussi Pakkanen
parent 4739d8763c
commit 2c6627d573
  1. 13
      mesonbuild/backend/ninjabackend.py

@ -2280,12 +2280,7 @@ rule FORTRAN_DEP_HACK
def generate_ending(self, outfile): def generate_ending(self, outfile):
targetlist = [] targetlist = []
ctlist = []
for t in self.get_build_by_default_targets().values(): for t in self.get_build_by_default_targets().values():
if isinstance(t, build.CustomTarget):
# Create a list of all custom target outputs
for o in t.get_outputs():
ctlist.append(os.path.join(self.get_target_dir(t), o))
# Add the first output of each target to the 'all' target so that # Add the first output of each target to the 'all' target so that
# they are all built # they are all built
targetlist.append(os.path.join(self.get_target_dir(t), t.get_outputs()[0])) targetlist.append(os.path.join(self.get_target_dir(t), t.get_outputs()[0]))
@ -2302,14 +2297,22 @@ rule FORTRAN_DEP_HACK
elem = NinjaBuildElement(self.all_outputs, 'clean', 'CUSTOM_COMMAND', 'PHONY') elem = NinjaBuildElement(self.all_outputs, 'clean', 'CUSTOM_COMMAND', 'PHONY')
elem.add_item('COMMAND', [ninja_command, '-t', 'clean']) elem.add_item('COMMAND', [ninja_command, '-t', 'clean'])
elem.add_item('description', 'Cleaning') elem.add_item('description', 'Cleaning')
# If we have custom targets in this project, add all their outputs to # If we have custom targets in this project, add all their outputs to
# the list that is passed to the `cleantrees.py` script. The script # the list that is passed to the `cleantrees.py` script. The script
# will manually delete all custom_target outputs that are directories # will manually delete all custom_target outputs that are directories
# instead of files. This is needed because on platforms other than # instead of files. This is needed because on platforms other than
# Windows, Ninja only deletes directories while cleaning if they are # Windows, Ninja only deletes directories while cleaning if they are
# empty. https://github.com/mesonbuild/meson/issues/1220 # empty. https://github.com/mesonbuild/meson/issues/1220
ctlist = []
for t in self.build.get_targets().values():
if isinstance(t, build.CustomTarget):
# Create a list of all custom target outputs
for o in t.get_outputs():
ctlist.append(os.path.join(self.get_target_dir(t), o))
if ctlist: if ctlist:
elem.add_dep(self.generate_custom_target_clean(outfile, ctlist)) elem.add_dep(self.generate_custom_target_clean(outfile, ctlist))
if 'b_coverage' in self.environment.coredata.base_options and \ if 'b_coverage' in self.environment.coredata.base_options and \
self.environment.coredata.base_options['b_coverage'].value: self.environment.coredata.base_options['b_coverage'].value:
self.generate_gcov_clean(outfile) self.generate_gcov_clean(outfile)

Loading…
Cancel
Save