Merge "Add a test for minification of interface fields"
diff --git a/tools/archive.py b/tools/archive.py
index 9213cc2..d899943 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -109,7 +109,8 @@
SetRLimitToMax()
PrintResourceInfo()
# Create maven release which uses a build that exclude dependencies.
- create_maven_release.main(["--out", utils.LIBS])
+ create_maven_release.run(utils.MAVEN_ZIP)
+ create_maven_release.run(utils.MAVEN_ZIP_LIB, is_r8lib=True)
# Generate and copy a full build without dependencies.
gradle.RunGradleExcludeDeps([utils.R8, utils.R8_SRC])
@@ -164,6 +165,7 @@
utils.COMPATPROGUARDLIB_JAR,
utils.COMPATPROGUARDLIB_JAR + '.map',
utils.MAVEN_ZIP,
+ utils.MAVEN_ZIP_LIB,
utils.GENERATED_LICENSE,
]:
file_name = os.path.basename(file)
diff --git a/tools/create_maven_release.py b/tools/create_maven_release.py
index 662d53e..401c92a 100755
--- a/tools/create_maven_release.py
+++ b/tools/create_maven_release.py
@@ -65,7 +65,9 @@
def parse_options(argv):
result = argparse.ArgumentParser()
- result.add_argument('--out', help='directory in which to put the output zip file')
+ result.add_argument('--out', help='The zip file to output')
+ result.add_argument('--r8lib', action='store_true',
+ help='Build r8 with dependencies included shrunken')
return result.parse_args(argv)
def determine_version():
@@ -172,8 +174,8 @@
group=group, artifact=artifact, version=version)
return result
-def write_pom_file(version, pom_file):
- dependencies = generate_dependencies()
+def write_pom_file(version, pom_file, exclude_dependencies):
+ dependencies = "" if exclude_dependencies else generate_dependencies()
version_pom = POMTEMPLATE.substitute(
version=version, dependencies=dependencies)
with open(pom_file, 'w') as file:
@@ -199,14 +201,15 @@
with (open(file + '.sha1', 'w')) as file:
file.write(hexdigest)
-def main(argv):
- options = parse_options(argv)
- outdir = options.out
- if outdir == None:
- print 'Need to supply output dir with --out.'
+def run(out, is_r8lib=False):
+ if out == None:
+ print 'Need to supply output zip with --out.'
exit(1)
# Build the R8 no deps artifact.
- gradle.RunGradleExcludeDeps([utils.R8])
+ if not is_r8lib:
+ gradle.RunGradleExcludeDeps([utils.R8])
+ else:
+ gradle.RunGradle([utils.R8LIB])
# Create directory structure for this version.
version = determine_version()
with utils.TempDir() as tmp_dir:
@@ -214,17 +217,24 @@
makedirs(version_dir)
# Write the pom file.
pom_file = join(version_dir, 'r8-' + version + '.pom')
- write_pom_file(version, pom_file)
+ write_pom_file(version, pom_file, is_r8lib)
# Copy the jar to the output.
target_jar = join(version_dir, 'r8-' + version + '.jar')
- copyfile(utils.R8_JAR, target_jar)
+ copyfile(utils.R8LIB_JAR if is_r8lib else utils.R8_JAR, target_jar)
# Create check sums.
write_md5_for(target_jar)
write_md5_for(pom_file)
write_sha1_for(target_jar)
write_sha1_for(pom_file)
- # Zip it up.
- make_archive(join(outdir, 'r8'), 'zip', tmp_dir)
+ # Zip it up - make_archive will append zip to the file, so remove.
+ assert out.endswith('.zip')
+ base_no_zip = out[0:len(out)-4]
+ make_archive(base_no_zip, 'zip', tmp_dir)
+
+def main(argv):
+ options = parse_options(argv)
+ out = options.out
+ run(out, options.r8lib)
if __name__ == "__main__":
exit(main(sys.argv[1:]))
diff --git a/tools/run_on_as_app.py b/tools/run_on_as_app.py
index 70fbc2a..6c27f9f 100755
--- a/tools/run_on_as_app.py
+++ b/tools/run_on_as_app.py
@@ -20,7 +20,6 @@
from xml.dom import minidom
import as_utils
-import create_maven_release
import update_prebuilds_in_android
SHRINKERS = ['r8', 'r8-full', 'r8-nolib', 'r8-nolib-full', 'pg']
diff --git a/tools/utils.py b/tools/utils.py
index 27df3b5..1fd28f0 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -53,6 +53,7 @@
COMPATPROGUARD_JAR = os.path.join(LIBS, 'compatproguard.jar')
COMPATPROGUARDLIB_JAR = os.path.join(LIBS, 'compatproguardlib.jar')
MAVEN_ZIP = os.path.join(LIBS, 'r8.zip')
+MAVEN_ZIP_LIB = os.path.join(LIBS, 'r8lib.zip')
GENERATED_LICENSE = os.path.join(GENERATED_LICENSE_DIR, 'LICENSE')
RT_JAR = os.path.join(REPO_ROOT, 'third_party/openjdk/openjdk-rt-1.8/rt.jar')
R8LIB_KEEP_RULES = os.path.join(REPO_ROOT, 'src/main/keep.txt')