Merge "Buck: Wipe out the machinery for merging JARs"
This commit is contained in:
commit
343104481e
|
@ -147,31 +147,3 @@ def maven_jar(
|
||||||
source_jar = ':%s__download_src' % name if srcjar else None,
|
source_jar = ':%s__download_src' % name if srcjar else None,
|
||||||
visibility = visibility,
|
visibility = visibility,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def merge_maven_jars(
|
|
||||||
name,
|
|
||||||
srcs,
|
|
||||||
visibility = []):
|
|
||||||
|
|
||||||
def cmd(jars):
|
|
||||||
return ('$(location //tools:merge_jars) $OUT '
|
|
||||||
+ ' '.join(['$(location %s)' % j for j in jars]))
|
|
||||||
|
|
||||||
genrule(
|
|
||||||
name = '%s__merged_bin' % name,
|
|
||||||
cmd = cmd(['%s__download_bin' % s for s in srcs]),
|
|
||||||
out = '%s__merged.jar' % name,
|
|
||||||
)
|
|
||||||
genrule(
|
|
||||||
name = '%s__merged_src' % name,
|
|
||||||
cmd = cmd(['%s__download_src' % s for s in srcs]),
|
|
||||||
# tools/eclipse/project.py requires -src.jar suffix.
|
|
||||||
out = '%s__merged-src.jar' % name,
|
|
||||||
)
|
|
||||||
prebuilt_jar(
|
|
||||||
name = name,
|
|
||||||
binary_jar = ':%s__merged_bin' % name,
|
|
||||||
source_jar = ':%s__merged_src' % name,
|
|
||||||
visibility = visibility,
|
|
||||||
)
|
|
||||||
|
|
|
@ -5,12 +5,6 @@ python_binary(
|
||||||
visibility = ['PUBLIC'],
|
visibility = ['PUBLIC'],
|
||||||
)
|
)
|
||||||
|
|
||||||
python_binary(
|
|
||||||
name = 'merge_jars',
|
|
||||||
main = 'merge_jars.py',
|
|
||||||
visibility = ['PUBLIC'],
|
|
||||||
)
|
|
||||||
|
|
||||||
python_binary(
|
python_binary(
|
||||||
name = 'pack_war',
|
name = 'pack_war',
|
||||||
main = 'pack_war.py',
|
main = 'pack_war.py',
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
# Copyright (C) 2015 The Android Open Source Project
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import collections
|
|
||||||
import sys
|
|
||||||
import zipfile
|
|
||||||
|
|
||||||
|
|
||||||
if len(sys.argv) < 3:
|
|
||||||
print('usage: %s <out.zip> <in.zip>...' % sys.argv[0], file=sys.stderr)
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
outfile = sys.argv[1]
|
|
||||||
infiles = sys.argv[2:]
|
|
||||||
seen = set()
|
|
||||||
SERVICES = 'META-INF/services/'
|
|
||||||
|
|
||||||
try:
|
|
||||||
with zipfile.ZipFile(outfile, 'w') as outzip:
|
|
||||||
services = collections.defaultdict(lambda: '')
|
|
||||||
for infile in infiles:
|
|
||||||
with zipfile.ZipFile(infile) as inzip:
|
|
||||||
for info in inzip.infolist():
|
|
||||||
n = info.filename
|
|
||||||
if n in seen:
|
|
||||||
continue
|
|
||||||
elif n.startswith(SERVICES):
|
|
||||||
# Concatenate all provider configuration files.
|
|
||||||
services[n] += inzip.read(n)
|
|
||||||
continue
|
|
||||||
outzip.writestr(info, inzip.read(n))
|
|
||||||
seen.add(n)
|
|
||||||
|
|
||||||
for n, v in services.iteritems():
|
|
||||||
outzip.writestr(n, v)
|
|
||||||
except Exception as err:
|
|
||||||
exit('Failed to merge jars: %s' % err)
|
|
Loading…
Reference in New Issue