aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-03-01 18:02:19 -0800
committerXavier Ducrohet <xav@android.com>2012-03-01 18:05:17 -0800
commit314a75226677df8933fd38824e9510acde90fe87 (patch)
tree456ad99f91b1b1ee5cb421ed6e51019fa5c32dc2
parent8e700cd45398cabff12e16ee535d02933c0d3220 (diff)
downloadsdk-314a75226677df8933fd38824e9510acde90fe87.zip
sdk-314a75226677df8933fd38824e9510acde90fe87.tar.gz
sdk-314a75226677df8933fd38824e9510acde90fe87.tar.bz2
Only generate the libraries R/manifest classes in the app project.
If the project is a library itself then there's no need to generate them. Change-Id: I9896e2bac81979797cca10fc606c66e5139fc9a1
-rw-r--r--anttasks/src/com/android/ant/AaptExecTask.java9
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java10
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java3
-rw-r--r--files/ant/build.xml2
4 files changed, 12 insertions, 12 deletions
diff --git a/anttasks/src/com/android/ant/AaptExecTask.java b/anttasks/src/com/android/ant/AaptExecTask.java
index 547e945..eabbbd2 100644
--- a/anttasks/src/com/android/ant/AaptExecTask.java
+++ b/anttasks/src/com/android/ant/AaptExecTask.java
@@ -218,7 +218,7 @@ public final class AaptExecTask extends SingleDependencyTask {
* The manifest will be rewritten so that its package ID becomes the value given here.
* Relative class names in the manifest (e.g. ".Foo") will be rewritten to absolute names based
* on the existing package name, meaning that no code changes need to be made.
- *
+ *
* @param packageName The package ID the APK should have.
*/
public void setManifestpackage(String packageName) {
@@ -356,8 +356,9 @@ public final class AaptExecTask extends SingleDependencyTask {
String libPkgProp = null;
// if the parameters indicate generation of the R class, check if
- // more R classes need to be created for libraries.
- if (mRFolder != null && new File(mRFolder).isDirectory()) {
+ // more R classes need to be created for libraries, only if this project itself
+ // is not a library
+ if (mNonConstantId == false && mRFolder != null && new File(mRFolder).isDirectory()) {
libPkgProp = taskProject.getProperty(mProjectLibrariesPackageName);
if (libPkgProp != null) {
// Replace ";" with ":" since that's what aapt expects
@@ -527,7 +528,7 @@ public final class AaptExecTask extends SingleDependencyTask {
}
}
- if (extraPackages != null && extraPackages.length() > 0) {
+ if (mNonConstantId == false && extraPackages != null && extraPackages.length() > 0) {
task.createArg().setValue("--extra-packages");
task.createArg().setValue(extraPackages);
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
index cdee0aa..6c4eca4 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
@@ -813,13 +813,11 @@ public class PostCompilerBuilder extends BaseBuilder {
rootFolder.getFullPath());
String name = file.getName();
- // we don't package any R[$*] classes whatever the package (because we generate
- // more than one if there are library dependencies). Also ignore Manifest and
- // BuildConfig classes that are in the app package.
- if (R_PATTERN.matcher(name).matches() ||
- (mAppPackage.equals(packageApp.toString()) &&
+ // Ignore the library's R/Manifest/BuildConfig classes.
+ if (mAppPackage.equals(packageApp.toString()) &&
(BUILD_CONFIG_CLASS.equals(name) ||
- MANIFEST_PATTERN.matcher(name).matches()))) {
+ MANIFEST_PATTERN.matcher(name).matches() ||
+ R_PATTERN.matcher(name).matches())) {
return;
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java
index 7713f47..8234f25 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java
@@ -805,7 +805,8 @@ public class PreCompilerBuilder extends BaseBuilder {
array.add("--auto-add-overlay"); //$NON-NLS-1$
}
- if (libraryPackages != null) {
+ // there's no need to generate the R class of the libraries if this is a library too.
+ if (isLibrary == false && libraryPackages != null) {
array.add("--extra-packages"); //$NON-NLS-1$
array.add(libraryPackages);
}
diff --git a/files/ant/build.xml b/files/ant/build.xml
index d1596eb..d68b56b 100644
--- a/files/ant/build.xml
+++ b/files/ant/build.xml
@@ -700,7 +700,7 @@
<jar destfile="${out.library.jar.file}">
<fileset dir="${out.classes.absolute.dir}"
- excludes="**/R.class **/R$*.class ${manifest.package.path}/Manifest.class ${manifest.package.path}/Manifest$*.class ${manifest.package.path}/BuildConfig.class"/>
+ excludes="${manifest.package.path}/R.class ${manifest.package.path}/R$*.class ${manifest.package.path}/Manifest.class ${manifest.package.path}/Manifest$*.class ${manifest.package.path}/BuildConfig.class"/>
<fileset dir="${source.absolute.dir}" excludes="**/*.java ${android.package.excludes}" />
</jar>
</then>