aboutsummaryrefslogtreecommitdiffstats
path: root/anttasks/src/com/android/ant/ManifestMergerTask.java
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2013-03-12 10:39:00 -0700
committerRaphael Moll <ralf@android.com>2013-03-13 20:34:20 -0700
commitf6a5b596f5473558ecc859e8af931a9f1b80a7ea (patch)
tree885f0080f18c5ba1a94781b9d61077d2c67e3add /anttasks/src/com/android/ant/ManifestMergerTask.java
parentbc982e5d2a6ffc0fa5c76eaf39e77e4ec415e637 (diff)
downloadsdk-f6a5b596f5473558ecc859e8af931a9f1b80a7ea.zip
sdk-f6a5b596f5473558ecc859e8af931a9f1b80a7ea.tar.gz
sdk-f6a5b596f5473558ecc859e8af931a9f1b80a7ea.tar.bz2
SDK: Delete projects moved to tools/base or tools/swt.
Change-Id: Iba15f82cb00d19217382c78d8ff37dda1e97ea59
Diffstat (limited to 'anttasks/src/com/android/ant/ManifestMergerTask.java')
-rw-r--r--anttasks/src/com/android/ant/ManifestMergerTask.java169
1 files changed, 0 insertions, 169 deletions
diff --git a/anttasks/src/com/android/ant/ManifestMergerTask.java b/anttasks/src/com/android/ant/ManifestMergerTask.java
deleted file mode 100644
index 6c53069..0000000
--- a/anttasks/src/com/android/ant/ManifestMergerTask.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.ant;
-
-import com.android.annotations.NonNull;
-import com.android.manifmerger.ICallback;
-import com.android.manifmerger.ManifestMerger;
-import com.android.manifmerger.MergerLog;
-import com.android.sdklib.IAndroidTarget;
-import com.android.sdklib.SdkManager;
-import com.android.sdklib.io.FileOp;
-import com.android.utils.StdLogger;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Path;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ManifestMergerTask extends SingleDependencyTask {
-
- private String mAppManifest;
- private String mOutManifest;
-
- private ArrayList<Path> mLibraryPaths;
- private boolean mEnabled = false;
-
- public void setAppManifest(Path appManifest) {
- mAppManifest = TaskHelper.checkSinglePath("appManifest", appManifest);
- }
-
- public void setOutManifest(Path outManifest) {
- mOutManifest = TaskHelper.checkSinglePath("outManifest", outManifest);
- }
-
- public void setEnabled(boolean enabled) {
- mEnabled = enabled;
- }
-
- /**
- * Returns an object representing a nested <var>library</var> element.
- */
- public Object createLibrary() {
- if (mLibraryPaths == null) {
- mLibraryPaths = new ArrayList<Path>();
- }
-
- Path path = new Path(getProject());
- mLibraryPaths.add(path);
-
- return path;
- }
-
- @Override
- public void execute() throws BuildException {
- if (mAppManifest == null) {
- throw new BuildException("Missing attribute appManifest");
- }
- if (mOutManifest == null) {
- throw new BuildException("Missing attribute outManifest");
- }
-
- // if we merge, then get the rest of the input paths.
- List<File> libraries = new ArrayList<File>();
- if (mLibraryPaths != null) {
- for (Path pathList : mLibraryPaths) {
- for (String path : pathList.list()) {
- libraries.add(new File(path));
- }
- }
- }
-
- // prepare input files
- ArrayList<File> allInputs = new ArrayList<File>(libraries.size() + 1);
-
- // always: the input manifest.
- File appManifestFile = new File(mAppManifest);
- allInputs.add(appManifestFile);
-
- // if enabled: add the libraries
- if (mEnabled) {
- allInputs.addAll(libraries);
- }
-
- // figure out the path to the dependency file.
- String depFile = mOutManifest + ".d";
-
- // get InputPath with no extension restrictions
- List<InputPath> inputPaths = getInputPaths(allInputs, null /*extensionsToCheck*/,
- null /*factory*/);
-
- if (initDependencies(depFile, inputPaths) && dependenciesHaveChanged() == false) {
- System.out.println(
- "No changes in the AndroidManifest files.");
- return;
- }
-
- System.out.println("Merging AndroidManifest files into one.");
-
- if (mEnabled == false || libraries.size() == 0) {
- if (mEnabled == false) {
- System.out.println("Manifest merger disabled. Using project manifest only.");
- } else {
- System.out.println("No libraries. Using project manifest only.");
- }
- // no merge (disabled or nothing to merge)? do a simple copy.
- try {
- new FileOp().copyFile(appManifestFile, new File(mOutManifest));
- } catch (IOException e) {
- throw new BuildException(e);
- }
- } else {
- System.out.println(String.format("Merging manifests from project and %d libraries.",
- libraries.size()));
- ManifestMerger merger = new ManifestMerger(
- MergerLog.wrapSdkLog(new StdLogger(StdLogger.Level.VERBOSE)),
- new ICallback() {
- SdkManager mManager;
- @Override
- public int queryCodenameApiLevel(@NonNull String codename) {
- if (mManager == null) {
- File sdkDir = TaskHelper.getSdkLocation(getProject());
- mManager = SdkManager.createManager(sdkDir.getPath(),
- new StdLogger(StdLogger.Level.VERBOSE));
- }
- if (mManager != null) {
- IAndroidTarget t = mManager.getTargetFromHashString(
- IAndroidTarget.PLATFORM_HASH_PREFIX + codename);
- if (t != null) {
- return t.getVersion().getApiLevel();
- }
- }
- return ICallback.UNKNOWN_CODENAME;
- }
- });
- if (merger.process(
- new File(mOutManifest),
- appManifestFile,
- libraries.toArray(new File[libraries.size()]),
- null /*injectAttributes*/) == false) {
- throw new BuildException();
- }
- }
-
- // generate the dependency file.
- generateDependencyFile(depFile, inputPaths, mOutManifest);
- }
-
- @Override
- protected String getExecTaskName() {
- return "ManifestMerger";
- }
-}