changeset 16845:1fd7bb00a77f

clean up generated IDE content for distributions as part of 'mx ideclean'
author Doug Simon <doug.simon@oracle.com>
date Fri, 15 Aug 2014 13:17:41 +0200
parents e14dedb367e8
children e3dd75b3c290
files mxtool/mx.py
diffstat 1 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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=<name>" 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"""