Mercurial > hg > graal-compiler
diff mxtool/mx.py @ 17059:a5dc5513ce85
mx: add check for compliance level of a distribution
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Mon, 08 Sep 2014 09:46:07 +0200 |
parents | 49b8c8932786 |
children | 75a4acd33159 |
line wrap: on
line diff
--- a/mxtool/mx.py Sat Sep 06 17:20:11 2014 +0100 +++ b/mxtool/mx.py Mon Sep 08 09:46:07 2014 +0200 @@ -64,7 +64,7 @@ A distribution is a jar or zip file containing the output from one or more Java projects. """ class Distribution: - def __init__(self, suite, name, path, sourcesPath, deps, mainClass, excludedDependencies, distDependencies): + def __init__(self, suite, name, path, sourcesPath, deps, mainClass, excludedDependencies, distDependencies, javaCompliance): self.suite = suite self.name = name self.path = path.replace('/', os.sep) @@ -75,6 +75,7 @@ self.mainClass = mainClass self.excludedDependencies = excludedDependencies self.distDependencies = distDependencies + self.javaCompliance = JavaCompliance(javaCompliance) if javaCompliance else None def sorted_deps(self, includeLibs=False, transitive=False): deps = [] @@ -169,6 +170,10 @@ if isCoveredByDependecy: continue + if self.javaCompliance: + if p.javaCompliance > self.javaCompliance: + abort("Compliance level doesn't match: Distribution {0} requires {1}, but {2} is {3}.".format(self.name, self.javaCompliance, p.name, p.javaCompliance)) + # skip a Java project if its Java compliance level is "higher" than the configured JDK jdk = java(p.javaCompliance) assert jdk @@ -930,7 +935,8 @@ mainClass = attrs.pop('mainClass', None) exclDeps = pop_list(attrs, 'exclude') distDeps = pop_list(attrs, 'distDependencies') - d = Distribution(self, name, path, sourcesPath, deps, mainClass, exclDeps, distDeps) + javaCompliance = attrs.pop('javaCompliance', None) + d = Distribution(self, name, path, sourcesPath, deps, mainClass, exclDeps, distDeps, javaCompliance) d.__dict__.update(attrs) self.dists.append(d) @@ -955,7 +961,8 @@ mainClass = None exclDeps = [] distDeps = [] - d = Distribution(self, dname, path, sourcesPath, deps, mainClass, exclDeps, distDeps) + javaCompliance = None + d = Distribution(self, dname, path, sourcesPath, deps, mainClass, exclDeps, distDeps, javaCompliance) d.subDir = os.path.relpath(os.path.dirname(p.dir), self.dir) self.dists.append(d) p.definedAnnotationProcessors = annotationProcessors