Do not set up a compilation classpath for AndroidSdk when nothing will am: ad6c83036e am: 6429edf253

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/vogar/+/18604031

Change-Id: I84a2e9301b38516998a29342d319a827aa831ac5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/vogar/Vogar.java b/src/vogar/Vogar.java
index 5a51ff4..59a0616 100644
--- a/src/vogar/Vogar.java
+++ b/src/vogar/Vogar.java
@@ -665,7 +665,8 @@
 
         AndroidSdk androidSdk = null;
         if (modeId.requiresAndroidSdk()) {
-            androidSdk = AndroidSdk.createAndroidSdk(console, mkdir, modeId, language);
+            androidSdk = AndroidSdk.createAndroidSdk(console, mkdir, modeId, language,
+                    !actionFiles.isEmpty());
         }
 
         if (runnerType == null) {
diff --git a/src/vogar/android/AndroidSdk.java b/src/vogar/android/AndroidSdk.java
index c8873c8..62bbd52 100644
--- a/src/vogar/android/AndroidSdk.java
+++ b/src/vogar/android/AndroidSdk.java
@@ -70,7 +70,8 @@
      * compilation class path and android jar path.
      */
     public static AndroidSdk createAndroidSdk(
-            Log log, Mkdir mkdir, ModeId modeId, Language language) {
+            Log log, Mkdir mkdir, ModeId modeId, Language language,
+            boolean supportBuildFromSource) {
         List<String> path = new Command.Builder(log).args("which", ARBITRARY_BUILD_TOOL_NAME)
                 .permitNonZeroExitStatus(true)
                 .execute();
@@ -175,39 +176,43 @@
 
             desugarJarPath = desugarJar.getPath();
 
-            String pattern = outDir +
-                    "target/common/obj/JAVA_LIBRARIES/%s_intermediates/classes";
-            if (modeId.isHost()) {
-                pattern = outDir + "host/common/obj/JAVA_LIBRARIES/%s_intermediates/classes";
-            }
-            pattern += ".jar";
-
-            String[] jarNames = modeId.getJarNames();
-            compilationClasspath = new File[jarNames.length];
-            List<String> missingJars = new ArrayList<>();
-            for (int i = 0; i < jarNames.length; i++) {
-                String jar = jarNames[i];
-                File file;
+            if (!supportBuildFromSource) {
+                compilationClasspath = new File[]{};
+            } else {
+                String pattern = outDir +
+                        "target/common/obj/JAVA_LIBRARIES/%s_intermediates/classes";
                 if (modeId.isHost()) {
-                    if  ("conscrypt-hostdex".equals(jar)) {
-                        jar = "conscrypt-host-hostdex";
-                    } else if ("core-icu4j-hostdex".equals(jar)) {
-                        jar = "core-icu4j-host-hostdex";
-                    }
-                    file = new File(String.format(pattern, jar));
-                } else {
-                    file = findApexJar(jar, pattern);
-                    if (file.exists()) {
-                        log.verbose("Using jar " + jar + " from " + file);
-                    } else {
-                        missingJars.add(jar);
-                    }
+                    pattern = outDir + "host/common/obj/JAVA_LIBRARIES/%s_intermediates/classes";
                 }
-                compilationClasspath[i] = file;
-            }
-            if (!missingJars.isEmpty()) {
-                logMissingJars(log, missingJars);
-                throw new RuntimeException("Unable to locate all jars needed for compilation");
+                pattern += ".jar";
+
+                String[] jarNames = modeId.getJarNames();
+                compilationClasspath = new File[jarNames.length];
+                List<String> missingJars = new ArrayList<>();
+                for (int i = 0; i < jarNames.length; i++) {
+                    String jar = jarNames[i];
+                    File file;
+                    if (modeId.isHost()) {
+                        if  ("conscrypt-hostdex".equals(jar)) {
+                            jar = "conscrypt-host-hostdex";
+                        } else if ("core-icu4j-hostdex".equals(jar)) {
+                            jar = "core-icu4j-host-hostdex";
+                        }
+                        file = new File(String.format(pattern, jar));
+                    } else {
+                        file = findApexJar(jar, pattern);
+                        if (file.exists()) {
+                            log.verbose("Using jar " + jar + " from " + file);
+                        } else {
+                            missingJars.add(jar);
+                        }
+                    }
+                    compilationClasspath[i] = file;
+                }
+                if (!missingJars.isEmpty()) {
+                    logMissingJars(log, missingJars);
+                    throw new RuntimeException("Unable to locate all jars needed for compilation");
+                }
             }
         } else {
             throw new RuntimeException("Couldn't derive Android home from "