comparison mxtool/mx.py @ 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 7eca83fd5419
children e3dd75b3c290
comparison
equal deleted inserted replaced
16844:e14dedb367e8 16845:1fd7bb00a77f
92 def __str__(self): 92 def __str__(self):
93 return self.name 93 return self.name
94 94
95 def add_update_listener(self, listener): 95 def add_update_listener(self, listener):
96 self.update_listeners.add(listener) 96 self.update_listeners.add(listener)
97
98 """
99 Gets the directory in which the IDE project configuration
100 for this distribution is generated.
101 """
102 def get_ide_project_dir(self):
103 if hasattr(self, 'subDir'):
104 return join(self.suite.dir, self.subDir, self.name + '.dist')
105 else:
106 return join(self.suite.dir, self.name + '.dist')
97 107
98 def make_archive(self): 108 def make_archive(self):
99 # are sources combined into main archive? 109 # are sources combined into main archive?
100 unified = self.path == self.sourcesPath 110 unified = self.path == self.sourcesPath
101 111
952 if arcname == config: 962 if arcname == config:
953 arc.zf.writestr(arcname, '\n'.join(aps)) 963 arc.zf.writestr(arcname, '\n'.join(aps))
954 else: 964 else:
955 arc.zf.writestr(arcname, lp.read(arcname)) 965 arc.zf.writestr(arcname, lp.read(arcname))
956 d.add_update_listener(_refineAnnotationProcessorServiceConfig) 966 d.add_update_listener(_refineAnnotationProcessorServiceConfig)
967 self.dists.append(d)
957 968
958 if self.name is None: 969 if self.name is None:
959 abort('Missing "suite=<name>" in ' + projectsFile) 970 abort('Missing "suite=<name>" in ' + projectsFile)
960 971
961 def _commands_name(self): 972 def _commands_name(self):
3539 3550
3540 # Create an Eclipse project for each distribution that will create/update the archive 3551 # Create an Eclipse project for each distribution that will create/update the archive
3541 # for the distribution whenever any (transitively) dependent project of the 3552 # for the distribution whenever any (transitively) dependent project of the
3542 # distribution is updated. 3553 # distribution is updated.
3543 for dist in suite.dists: 3554 for dist in suite.dists:
3544 if hasattr(dist, 'subDir'): 3555 projectDir = dist.get_ide_project_dir()
3545 projectDir = join(suite.dir, dist.subDir, dist.name + '.dist')
3546 else:
3547 projectDir = join(suite.dir, dist.name + '.dist')
3548 if not exists(projectDir): 3556 if not exists(projectDir):
3549 os.makedirs(projectDir) 3557 os.makedirs(projectDir)
3550 distProjects = [d for d in dist.sorted_deps(transitive=True) if d.isProject()] 3558 distProjects = [d for d in dist.sorted_deps(transitive=True) if d.isProject()]
3551 relevantResources = [] 3559 relevantResources = []
3552 for p in distProjects: 3560 for p in distProjects:
4287 try: 4295 try:
4288 rm(join(p.dir, p.name + '.jar')) 4296 rm(join(p.dir, p.name + '.jar'))
4289 except: 4297 except:
4290 log("Error removing {0}".format(p.name + '.jar')) 4298 log("Error removing {0}".format(p.name + '.jar'))
4291 4299
4300 for d in _dists.itervalues():
4301 shutil.rmtree(d.get_ide_project_dir(), ignore_errors=True)
4302
4292 4303
4293 def ideinit(args, refreshOnly=False): 4304 def ideinit(args, refreshOnly=False):
4294 """(re)generate Eclipse, NetBeans and Intellij project configurations""" 4305 """(re)generate Eclipse, NetBeans and Intellij project configurations"""
4295 eclipseinit(args, refreshOnly=refreshOnly) 4306 eclipseinit(args, refreshOnly=refreshOnly)
4296 netbeansinit(args, refreshOnly=refreshOnly) 4307 netbeansinit(args, refreshOnly=refreshOnly)