Prepare release scripts for new JDK-11 desugared library variants
Bug: b/222647019
Change-Id: Iae6b31b24df54163da6327cac3080dd72a597ddb
diff --git a/tools/create_maven_release.py b/tools/create_maven_release.py
index 472bd96..fc7eafb 100755
--- a/tools/create_maven_release.py
+++ b/tools/create_maven_release.py
@@ -81,7 +81,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.android.tools</groupId>
- <artifactId>desugar_jdk_libs_configuration</artifactId>
+ <artifactId>$artifactId</artifactId>
<version>$version</version>
<name>D8 configuration to desugar desugar_jdk_libs</name>
<description>
@@ -260,11 +260,19 @@
return result
def write_default_r8_pom_file(pom_file, version):
- write_pom_file(R8_POMTEMPLATE, pom_file, version, generate_dependencies(), '')
+ write_pom_file(R8_POMTEMPLATE, pom_file, version, dependencies=generate_dependencies())
-def write_pom_file(template, pom_file, version, dependencies='', library_licenses=''):
- version_pom = template.substitute(
- version=version, dependencies=dependencies, library_licenses=library_licenses)
+def write_pom_file(
+ template, pom_file, version, artifact_id=None, dependencies='', library_licenses=''):
+ version_pom = (
+ template.substitute(
+ artifactId=artifact_id,
+ version=version,
+ dependencies=dependencies,
+ library_licenses=library_licenses)
+ if artifact_id else
+ template.substitute(
+ version=version, dependencies=dependencies, library_licenses=library_licenses))
with open(pom_file, 'w') as file:
file.write(version_pom)
@@ -332,8 +340,8 @@
R8_POMTEMPLATE,
pom_file,
version,
- "" if is_r8lib else generate_dependencies(),
- generate_library_licenses() if is_r8lib else "")
+ dependencies='' if is_r8lib else generate_dependencies(),
+ library_licenses=generate_library_licenses() if is_r8lib else '')
# Write the maven zip file.
generate_maven_zip(
'r8',
@@ -383,14 +391,31 @@
make_archive(destination, 'zip', tmp_dir)
move(destination + '.zip', destination)
+def convert_desugar_configuration(configuration, machine_configuration):
+ cmd = [jdk.GetJavaExecutable(),
+ '-cp',
+ utils.R8_JAR,
+ 'com.android.tools.r8.ir.desugar.desugaredlibrary.specificationconversion.DesugaredLibraryConverter',
+ configuration,
+ utils.DESUGAR_IMPLEMENTATION_JDK11,
+ utils.get_android_jar(33),
+ machine_configuration]
+ subprocess.check_call(cmd)
+
# Generate the maven zip for the configuration to desugar desugar_jdk_libs.
def generate_desugar_configuration_maven_zip(
out, configuration, implementation, conversions):
with utils.TempDir() as tmp_dir:
- version = utils.desugar_configuration_version(configuration)
+ (name, version) = utils.desugar_configuration_name_and_version(configuration, False)
+
+ if (not version.startswith("1.")):
+ machine_configuration = join(tmp_dir, "machine.json")
+ convert_desugar_configuration(configuration, machine_configuration)
+ configuration = machine_configuration
+
# Generate the pom file.
pom_file = join(tmp_dir, 'desugar_configuration.pom')
- write_pom_file(DESUGAR_CONFIGUATION_POMTEMPLATE, pom_file, version)
+ write_pom_file(DESUGAR_CONFIGUATION_POMTEMPLATE, pom_file, version, artifact_id=name)
# Generate the jar with the configuration file.
jar_file = join(tmp_dir, 'desugar_configuration.jar')
generate_jar_with_desugar_configuration(
@@ -399,8 +424,7 @@
conversions,
jar_file)
# Write the maven zip file.
- generate_maven_zip(
- 'desugar_jdk_libs_configuration', version, pom_file, jar_file, out)
+ generate_maven_zip(name, version, pom_file, jar_file, out)
def main(argv):
options = parse_options(argv)