Mercurial > hg > truffle
comparison mxtool/mx.py @ 18393:a4ab0b87fb34
Make distribution dependencies also exclude libraries
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 16 Sep 2014 15:06:32 +0200 |
parents | c88ab4f1f04a |
children | e97e1f07a3d6 |
comparison
equal
deleted
inserted
replaced
18392:3ad5d7a6adb5 | 18393:a4ab0b87fb34 |
---|---|
134 manifest = "Manifest-Version: 1.0\nMain-Class: %s\n\n" % (self.mainClass) | 134 manifest = "Manifest-Version: 1.0\nMain-Class: %s\n\n" % (self.mainClass) |
135 if not overwriteCheck(arc.zf, "META-INF/MANIFEST.MF", "project files"): | 135 if not overwriteCheck(arc.zf, "META-INF/MANIFEST.MF", "project files"): |
136 arc.zf.writestr("META-INF/MANIFEST.MF", manifest) | 136 arc.zf.writestr("META-INF/MANIFEST.MF", manifest) |
137 | 137 |
138 for dep in self.sorted_deps(includeLibs=True): | 138 for dep in self.sorted_deps(includeLibs=True): |
139 isCoveredByDependecy = False | |
140 for d in self.distDependencies: | |
141 if dep in _dists[d].sorted_deps(includeLibs=True, transitive=True): | |
142 logv("Excluding {0} from {1} because it's provided by the dependency {2}".format(dep.name, self.path, d)) | |
143 isCoveredByDependecy = True | |
144 break | |
145 | |
146 if isCoveredByDependecy: | |
147 continue | |
148 | |
139 if dep.isLibrary(): | 149 if dep.isLibrary(): |
140 l = dep | 150 l = dep |
141 # merge library jar into distribution jar | 151 # merge library jar into distribution jar |
142 logv('[' + self.path + ': adding library ' + l.name + ']') | 152 logv('[' + self.path + ': adding library ' + l.name + ']') |
143 lpath = l.get_path(resolve=True) | 153 lpath = l.get_path(resolve=True) |
157 for arcname in lp.namelist(): | 167 for arcname in lp.namelist(): |
158 if not overwriteCheck(srcArc.zf, arcname, lpath + '!' + arcname): | 168 if not overwriteCheck(srcArc.zf, arcname, lpath + '!' + arcname): |
159 srcArc.zf.writestr(arcname, lp.read(arcname)) | 169 srcArc.zf.writestr(arcname, lp.read(arcname)) |
160 elif dep.isProject(): | 170 elif dep.isProject(): |
161 p = dep | 171 p = dep |
162 | |
163 isCoveredByDependecy = False | |
164 for d in self.distDependencies: | |
165 if p in _dists[d].sorted_deps(): | |
166 logv("Excluding {0} from {1} because it's provided by the dependency {2}".format(p.name, self.path, d)) | |
167 isCoveredByDependecy = True | |
168 break | |
169 | |
170 if isCoveredByDependecy: | |
171 continue | |
172 | 172 |
173 if self.javaCompliance: | 173 if self.javaCompliance: |
174 if p.javaCompliance > self.javaCompliance: | 174 if p.javaCompliance > self.javaCompliance: |
175 abort("Compliance level doesn't match: Distribution {0} requires {1}, but {2} is {3}.".format(self.name, self.javaCompliance, p.name, p.javaCompliance)) | 175 abort("Compliance level doesn't match: Distribution {0} requires {1}, but {2} is {3}.".format(self.name, self.javaCompliance, p.name, p.javaCompliance)) |
176 | 176 |