@Override public void execute(DesugarTask desugarTask) { String bcp = System.getProperty("sun.boot.class.path"); desugarTask.androidJarClasspath = () -> androidExtension.getProject().getConfigurations().getByName("androidBootclasspath").resolve(); if (bcp != null) { desugarTask.compilationBootclasspath = PathUtils.getClassPathItems(System.getProperty("sun.boot.class.path")); } else { desugarTask.compilationBootclasspath = Collections.emptyList(); } desugarTask.userCache = androidExtension.getBuildCache(); desugarTask.setMinSdk(Integer.parseInt(androidExtension.getMinSdkVersion())); desugarTask.androidRuntime = androidExtension.getProject().getConfigurations().getByName("androidRuntime"); desugarTask.setInputDir(inputLocation); desugarTask.setTmpDir(androidExtension.getTemporaryDirectory()); desugarTask.setOutputDir(outputLocation); desugarTask.verbose = androidExtension.getProject().getLogger().isInfoEnabled(); desugarTask.executor = androidExtension.getAndroidBuilder().getJavaProcessExecutor(); } }
private void runJack(@NonNull TransformInvocation transformInvocation) throws ProcessException, IOException, JackToolchain.ToolchainException, ClassNotFoundException { TransformOutputProvider outputProvider = transformInvocation.getOutputProvider(); checkNotNull(outputProvider); final File outDirectory = outputProvider.getContentLocation( "main", getOutputTypes(), getScopes(), Format.DIRECTORY); options.setDexOutputDirectory(outDirectory); options.setClasspaths( TransformInputUtil.getAllFiles(transformInvocation.getReferencedInputs())); options.setImportFiles(TransformInputUtil.getAllFiles(transformInvocation.getInputs())); options.setInputFiles(getSourceFiles()); JackToolchain toolchain = new JackToolchain( androidBuilder.getTargetInfo().getBuildTools(), androidBuilder.getLogger(), androidBuilder.getErrorReporter()); toolchain.convert(options, androidBuilder.getJavaProcessExecutor(), jackInProcess); }
.buildToolInfo(androidBuilder::getBuildToolInfo) .errorReporter(androidBuilder.getErrorReporter()) .javaProcessExecutor(androidBuilder.getJavaProcessExecutor()) .javaMaxHeapSize( globalScope.getExtension().getDexOptions().getJavaMaxHeapSize()) .buildToolInfo(androidBuilder::getBuildToolInfo) .errorReporter(androidBuilder.getErrorReporter()) .javaProcessExecutor(androidBuilder.getJavaProcessExecutor()) .javaMaxHeapSize( globalScope.getExtension().getDexOptions().getJavaMaxHeapSize())