# HG changeset patch # User Doug Simon # Date 1408101461 -7200 # Node ID 1fd7bb00a77fe12f3588f4ecb8dbc0443eae3226 # Parent e14dedb367e84392e291648627782d6f82fc1ff7 clean up generated IDE content for distributions as part of 'mx ideclean' diff -r e14dedb367e8 -r 1fd7bb00a77f mxtool/mx.py --- a/mxtool/mx.py Fri Aug 15 12:38:01 2014 +0200 +++ b/mxtool/mx.py Fri Aug 15 13:17:41 2014 +0200 @@ -95,6 +95,16 @@ def add_update_listener(self, listener): self.update_listeners.add(listener) + """ + Gets the directory in which the IDE project configuration + for this distribution is generated. + """ + def get_ide_project_dir(self): + if hasattr(self, 'subDir'): + return join(self.suite.dir, self.subDir, self.name + '.dist') + else: + return join(self.suite.dir, self.name + '.dist') + def make_archive(self): # are sources combined into main archive? unified = self.path == self.sourcesPath @@ -954,6 +964,7 @@ else: arc.zf.writestr(arcname, lp.read(arcname)) d.add_update_listener(_refineAnnotationProcessorServiceConfig) + self.dists.append(d) if self.name is None: abort('Missing "suite=" in ' + projectsFile) @@ -3541,10 +3552,7 @@ # for the distribution whenever any (transitively) dependent project of the # distribution is updated. for dist in suite.dists: - if hasattr(dist, 'subDir'): - projectDir = join(suite.dir, dist.subDir, dist.name + '.dist') - else: - projectDir = join(suite.dir, dist.name + '.dist') + projectDir = dist.get_ide_project_dir() if not exists(projectDir): os.makedirs(projectDir) distProjects = [d for d in dist.sorted_deps(transitive=True) if d.isProject()] @@ -4289,6 +4297,9 @@ except: log("Error removing {0}".format(p.name + '.jar')) + for d in _dists.itervalues(): + shutil.rmtree(d.get_ide_project_dir(), ignore_errors=True) + def ideinit(args, refreshOnly=False): """(re)generate Eclipse, NetBeans and Intellij project configurations"""