public void assertThatBuildToolsVersionIsAtLeast( String version, String feature ) throws InvalidSdkException, NumberFormatException { if ( getBuildToolInfo().getRevision(). compareTo( Revision.parseRevision( version ) ) < 0 ) { throw new InvalidSdkException( "Version of build tools must be at least " + version + " for " + feature + " to work" ); } }
@NonNull @Override public Map<String, Object> getParameterInputs() { return ImmutableMap.of("buildToolsRev", buildToolInfo.get().getRevision().toString()); }
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); } private List<File> sourceDirs;
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input public String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
@Input String getBuildToolsVersion() { return getBuildTools().getRevision().toString(); }
/** Gets the supported Jack API version. This throws exception if no API is supported. */ @NonNull public JackVersion getSupportedJackApi() { for (JackVersion version : JackVersion.values()) { if (version.getSupportedBetween().contains(getRevision())) { return version; } } throw new UnsupportedOperationException("Jack API unsupported; update the build tools."); }
/** * Load a built-tools version specific {@link ServiceLoader} helper. * @param buildToolInfo the requested build-tools information * @return an initialized {@link BuildToolsServiceLoader.BuildToolServiceLoader} to get * instances of {@link ServiceLoader} from. */ @NonNull public synchronized BuildToolServiceLoader forVersion(BuildToolInfo buildToolInfo) { Optional<LoadedBuildTool> loadedBuildToolOptional = findVersion(buildToolInfo.getRevision()); if (loadedBuildToolOptional.isPresent()) { return loadedBuildToolOptional.get().serviceLoader; } LoadedBuildTool loadedBuildTool = new LoadedBuildTool(buildToolInfo.getRevision(), new BuildToolServiceLoader(buildToolInfo)); loadedBuildTools.add(loadedBuildTool); return loadedBuildTool.serviceLoader; }
/** * Load a built-tools version specific {@link ServiceLoader} helper. * @param buildToolInfo the requested build-tools information * @return an initialized {@link BuildToolsServiceLoader.BuildToolServiceLoader} to get * instances of {@link ServiceLoader} from. */ @NonNull public synchronized BuildToolServiceLoader forVersion(BuildToolInfo buildToolInfo) { Optional<LoadedBuildTool> loadedBuildToolOptional = findVersion(buildToolInfo.getRevision()); if (loadedBuildToolOptional.isPresent()) { return loadedBuildToolOptional.get().serviceLoader; } LoadedBuildTool loadedBuildTool = new LoadedBuildTool(buildToolInfo.getRevision(), new BuildToolServiceLoader(buildToolInfo)); loadedBuildTools.add(loadedBuildTool); return loadedBuildTool.serviceLoader; }
@NonNull @Override public Map<String, Object> getParameterInputs() { ImmutableMap.Builder<String, Object> params = ImmutableMap.builder(); params.put("keepRuntimeAnnotatedClasses", keepRuntimeAnnotatedClasses); TargetInfo targetInfo = variantScope.getGlobalScope().getAndroidBuilder().getTargetInfo(); if (targetInfo != null) { params.put("build_tools", targetInfo.getBuildTools().getRevision().toString()); } return params.build(); }
/** * Sets the SdkInfo and the targetInfo on the builder. This is required to actually * build (some of the steps). * * @param sdkInfo the SdkInfo * @param targetInfo the TargetInfo * * @see com.android.builder.sdk.SdkLoader */ public void setTargetInfo( @NonNull SdkInfo sdkInfo, @NonNull TargetInfo targetInfo, @NonNull Collection<LibraryRequest> libraryRequests) { mSdkInfo = sdkInfo; mTargetInfo = targetInfo; if (mTargetInfo.getBuildTools().getRevision().compareTo(MIN_BUILD_TOOLS_REV) < 0) { throw new IllegalArgumentException(String.format( "The SDK Build Tools revision (%1$s) is too low for project '%2$s'. Minimum required is %3$s", mTargetInfo.getBuildTools().getRevision(), mProjectId, MIN_BUILD_TOOLS_REV)); } mLibraryRequests = ImmutableList.copyOf(libraryRequests); }
@NonNull @Override public Map<String, Object> getParameterInputs() { Map<String, Object> params = Maps.newHashMap(); params.put("javaResourcesFolder", options.getResourceDirectories()); params.put("isDebuggable", options.isDebuggable()); params.put("multiDexEnabled", options.isMultiDex()); params.put("minSdkVersion", options.getMinSdkVersion().getApiString()); params.put("javaMaxHeapSize", options.getJavaMaxHeapSize()); params.put("sourceCompatibility", options.getSourceCompatibility()); params.put("buildToolsRev", androidBuilder.getTargetInfo().getBuildTools().getRevision().toString()); return params; }
/** * Sets the SdkInfo and the targetInfo on the builder. This is required to actually * build (some of the steps). * * @see com.android.builder.sdk.SdkLoader */ public void setTargetInfo(@NonNull TargetInfo targetInfo) { mTargetInfo = targetInfo; mDexByteCodeConverter = new DexByteCodeConverter( getLogger(), mTargetInfo, mJavaProcessExecutor, mVerboseExec); if (mTargetInfo.getBuildTools().getRevision().compareTo(MIN_BUILD_TOOLS_REV) < 0) { mErrorReporter.handleSyncError( MIN_BUILD_TOOLS_REV.toString(), SyncIssue.TYPE_BUILD_TOOLS_TOO_LOW, String.format( "The SDK Build Tools revision (%1$s) is too low for project '%2$s'. " + "Minimum required is %3$s", mTargetInfo.getBuildTools().getRevision(), mProjectId, MIN_BUILD_TOOLS_REV)); } }
private static Pair<Dependency, DependencyNode> handleRenderscriptSupport( @NonNull VariantConfiguration variantConfiguration, @NonNull AndroidBuilder androidBuilder) { if (variantConfiguration.getRenderscriptSupportModeEnabled()) { File supportJar = androidBuilder.getRenderScriptSupportJar(); if (supportJar != null) { return sRSCache.get(Pair.of( supportJar, androidBuilder.getTargetInfo().getBuildTools().getRevision().toString())); } } return null; } }
private PngCruncher getCruncher() { if (getUseNewCruncher()) { if (getBuilder().getTargetInfo().getBuildTools().getRevision().getMajor() >= 22) { return QueuedCruncher.Builder.INSTANCE.newCruncher( getBuilder().getTargetInfo().getBuildTools().getPath( BuildToolInfo.PathId.AAPT), getILogger()); } getLogger().info("New PNG cruncher will be enabled with build tools 22 and above."); } return getBuilder().getAaptCruncher(); }