diff options
author | Xavier Ducrohet <xav@android.com> | 2009-07-20 14:43:50 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2009-07-20 18:11:21 -0700 |
commit | 6d8d4187c33e461c0674f82f44edab46e4b918b4 (patch) | |
tree | 26ba1e2321ad2a33dc64e435ddabc0c7cdbe59f9 /anttasks | |
parent | 8c9801bfa758f8cd48e285441e170e4e3b7cacb8 (diff) | |
download | sdk-6d8d4187c33e461c0674f82f44edab46e4b918b4.zip sdk-6d8d4187c33e461c0674f82f44edab46e4b918b4.tar.gz sdk-6d8d4187c33e461c0674f82f44edab46e4b918b4.tar.bz2 |
Add support for preview versions of platforms.
ro.build.version.codename is a new property indicating whether a platform
is in its release form (value = REL) or in development (value = dev branch
name such as Donut). When the codename indicates a development/preview version
then the API level must be ignored and this codename is used as a unique
identifier of the platform.
IAndroidTarget has been changed to return an instance of a new class
AndroidVersion instead of the api level directly. This class helps deals with
the logic of comparing version from targets or devices.
This change impacts all of the sdk manager to deal with targets identified by
codename instead of api level. This in turn impacts everything that relies
on the sdkmanager: ADT (build, launch, project creation), the AVD manager,
the SDK updater.
Diffstat (limited to 'anttasks')
-rw-r--r-- | anttasks/src/com/android/ant/SetupTask.java | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/anttasks/src/com/android/ant/SetupTask.java b/anttasks/src/com/android/ant/SetupTask.java index 60f8c7e..7af9611 100644 --- a/anttasks/src/com/android/ant/SetupTask.java +++ b/anttasks/src/com/android/ant/SetupTask.java @@ -44,13 +44,13 @@ import java.util.HashSet; * <li>Imports the build rules located in the resolved target so that the build actually does * something. This can be disabled with the attribute <var>import</var> set to <code>false</code> * </li></ul> - * + * * This is used in build.xml/template. * */ public final class SetupTask extends ImportTask { private final static String ANDROID_RULES = "android_rules.xml"; - + // ant property with the path to the android.jar private final static String PROPERTY_ANDROID_JAR = "android-jar"; // ant property with the path to the framework.jar @@ -63,21 +63,21 @@ public final class SetupTask extends ImportTask { private final static String PROPERTY_DX = "dx"; // ref id to the <path> object containing all the boot classpaths. private final static String REF_CLASSPATH = "android.target.classpath"; - + private boolean mDoImport = true; @Override public void execute() throws BuildException { Project antProject = getProject(); - + // get the SDK location String sdkLocation = antProject.getProperty(ProjectProperties.PROPERTY_SDK); - + // check if it's valid and exists if (sdkLocation == null || sdkLocation.length() == 0) { throw new BuildException("SDK Location is not set."); } - + File sdk = new File(sdkLocation); if (sdk.isDirectory() == false) { throw new BuildException(String.format("SDK Location '%s' is not valid.", sdkLocation)); @@ -120,20 +120,20 @@ public final class SetupTask extends ImportTask { // resolve it IAndroidTarget androidTarget = manager.getTargetFromHashString(targetHashString); - + if (androidTarget == null) { throw new BuildException(String.format( "Unable to resolve target '%s'", targetHashString)); } - + // display it System.out.println("Project Target: " + androidTarget.getName()); if (androidTarget.isPlatform() == false) { System.out.println("Vendor: " + androidTarget.getVendor()); - System.out.println("Platform Version: " + androidTarget.getApiVersionName()); + System.out.println("Platform Version: " + androidTarget.getVersionName()); } - System.out.println("API level: " + androidTarget.getApiVersionNumber()); - + System.out.println("API level: " + androidTarget.getVersion().getApiString()); + // sets up the properties to find android.jar/framework.aidl/target tools String androidJar = androidTarget.getPath(IAndroidTarget.ANDROID_JAR); antProject.setProperty(PROPERTY_ANDROID_JAR, androidJar); @@ -152,7 +152,7 @@ public final class SetupTask extends ImportTask { // create a PathElement for the framework jar PathElement element = bootclasspath.createPathElement(); element.setPath(androidJar); - + // create PathElement for each optional library. IOptionalLibrary[] libraries = androidTarget.getOptionalLibraries(); if (libraries != null) { @@ -167,13 +167,13 @@ public final class SetupTask extends ImportTask { } } } - + // finally sets the path in the project with a reference antProject.addReference(REF_CLASSPATH, bootclasspath); // find the file to import, and import it. String templateFolder = androidTarget.getPath(IAndroidTarget.TEMPLATES); - + // Now the import section. This is only executed if the task actually has to import a file. if (mDoImport) { // make sure the file exists. @@ -182,17 +182,17 @@ public final class SetupTask extends ImportTask { throw new BuildException(String.format("Template directory '%s' is missing.", templateFolder)); } - + // now check the rules file exists. File rules = new File(templateFolder, ANDROID_RULES); if (rules.isFile() == false) { throw new BuildException(String.format("Build rules file '%s' is missing.", templateFolder)); } - + // set the file location to import setFile(rules.getAbsolutePath()); - + // and import super.execute(); } |