aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java16
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java6
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java26
-rw-r--r--files/ant/build.xml4
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java2
6 files changed, 40 insertions, 16 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java
index e399b69..fa878cf 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java
@@ -98,7 +98,7 @@ public class AidlProcessor extends SourceProcessor {
@SuppressWarnings("deprecation")
@Override
protected void doCompileFiles(List<IFile> sources, BaseBuilder builder,
- IProject project, IAndroidTarget projectTarget, int targetApi,
+ IProject project, IAndroidTarget projectTarget,
List<IPath> sourceFolders, List<IFile> notCompiledOut, List<File> libraryProjectsOut,
IProgressMonitor monitor) throws CoreException {
// create the command line
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java
index 2ec781f..2652866 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java
@@ -143,10 +143,17 @@ public class RenderScriptProcessor extends SourceProcessor {
}
}
+ private int mTargetApi = 11;
+
public RenderScriptProcessor(IJavaProject javaProject, IFolder genFolder) {
super(javaProject, genFolder, new RsChangeHandler());
}
+ public void setTargetApi(int targetApi) {
+ // make sure the target api value is good. Must be 11+ or llvm-rs-cc complains.
+ mTargetApi = targetApi < 11 ? 11 : targetApi;
+ }
+
@Override
protected Set<String> getExtensions() {
return EXTENSIONS;
@@ -160,7 +167,7 @@ public class RenderScriptProcessor extends SourceProcessor {
@SuppressWarnings("deprecation")
@Override
protected void doCompileFiles(List<IFile> sources, BaseBuilder builder,
- IProject project, IAndroidTarget projectTarget, int targetApi,
+ IProject project, IAndroidTarget projectTarget,
List<IPath> sourceFolders, List<IFile> notCompiledOut, List<File> libraryProjectsOut,
IProgressMonitor monitor) throws CoreException {
@@ -173,11 +180,6 @@ public class RenderScriptProcessor extends SourceProcessor {
int depIndex;
- // make sure the target api value is good. Must be 11+ or llvm-rs-cc complains.
- if (targetApi < 11) {
- targetApi = 11;
- }
-
// create the command line
String[] command = new String[15];
int index = 0;
@@ -193,7 +195,7 @@ public class RenderScriptProcessor extends SourceProcessor {
command[index++] = quote(rawFolder.getLocation().toOSString());
command[index++] = "-target-api"; //$NON-NLS-1$
- command[index++] = Integer.toString(targetApi);
+ command[index++] = Integer.toString(mTargetApi);
command[index++] = "-d"; //$NON-NLS-1$
command[depIndex = index++] = null;
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java
index 794ed52..7932a70 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java
@@ -220,7 +220,7 @@ public abstract class SourceProcessor {
*
*/
public final int compileFiles(BaseBuilder builder,
- IProject project, IAndroidTarget projectTarget, int minSdkVersion,
+ IProject project, IAndroidTarget projectTarget,
List<IPath> sourceFolders, List<File> libraryProjectsOut, IProgressMonitor monitor)
throws CoreException {
@@ -242,7 +242,7 @@ public abstract class SourceProcessor {
// list of files that have failed compilation.
List<IFile> stillNeedCompilation = new ArrayList<IFile>();
- doCompileFiles(mToCompile, builder, project, projectTarget, minSdkVersion, sourceFolders,
+ doCompileFiles(mToCompile, builder, project, projectTarget, sourceFolders,
stillNeedCompilation, libraryProjectsOut, monitor);
mToCompile.clear();
@@ -274,7 +274,7 @@ public abstract class SourceProcessor {
protected abstract void doCompileFiles(
List<IFile> filesToCompile, BaseBuilder builder,
- IProject project, IAndroidTarget projectTarget, int targetApi,
+ IProject project, IAndroidTarget projectTarget,
List<IPath> sourceFolders, List<IFile> notCompiledOut,
List<File> libraryProjectsOut, IProgressMonitor monitor) throws CoreException;
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 73d183c..25b16e4 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
@@ -139,6 +139,8 @@ public class PreCompilerBuilder extends BaseBuilder {
*/
private DerivedProgressMonitor mDerivedProgressMonitor;
+ private RenderScriptProcessor mRenderScriptProcessor;
+
/**
* Progress monitor waiting the end of the process to set a persistent value
* in a file. This is typically used in conjunction with <code>IResource.refresh()</code>,
@@ -650,10 +652,27 @@ public class PreCompilerBuilder extends BaseBuilder {
// run the source processors
int processorStatus = SourceProcessor.COMPILE_STATUS_NONE;
+
+ // get the renderscript target
+ int rsTarget = minSdkValue == -1 ? 11 : minSdkValue;
+ String rsTargetStr = projectState.getProperty(ProjectProperties.PROPERTY_RS_TARGET);
+ if (rsTargetStr != null) {
+ try {
+ rsTarget = Integer.parseInt(rsTargetStr);
+ } catch (NumberFormatException e) {
+ handleException(e, String.format(
+ "Property %s is not an integer.",
+ ProjectProperties.PROPERTY_RS_TARGET));
+ return result;
+ }
+ }
+
+ mRenderScriptProcessor.setTargetApi(rsTarget);
+
for (SourceProcessor processor : mProcessors) {
try {
processorStatus |= processor.compileFiles(this,
- project, projectTarget, minSdkValue, sourceFolderPathList,
+ project, projectTarget, sourceFolderPathList,
libProjectsOut, monitor);
} catch (Throwable t) {
handleException(t, String.format(
@@ -776,10 +795,9 @@ public class PreCompilerBuilder extends BaseBuilder {
// load the source processors
SourceProcessor aidlProcessor = new AidlProcessor(javaProject, mGenFolder);
- SourceProcessor renderScriptProcessor = new RenderScriptProcessor(javaProject,
- mGenFolder);
+ mRenderScriptProcessor = new RenderScriptProcessor(javaProject, mGenFolder);
mProcessors.add(aidlProcessor);
- mProcessors.add(renderScriptProcessor);
+ mProcessors.add(mRenderScriptProcessor);
} catch (Throwable throwable) {
AdtPlugin.log(throwable, "Failed to finish PrecompilerBuilder#startupOnInitialize()");
}
diff --git a/files/ant/build.xml b/files/ant/build.xml
index 136adfc..acba923 100644
--- a/files/ant/build.xml
+++ b/files/ant/build.xml
@@ -655,11 +655,13 @@
<!-- renderscript generates resources so it must be called before aapt -->
<echo level="info">----------</echo>
<echo level="info">Handling RenderScript files...</echo>
+ <!-- set the rs target prop in case it hasn't been set. -->
+ <property name="renderscript.target" value="${project.minSdkVersion}" />
<renderscript executable="${renderscript}"
includePathRefId="android.renderscript.include.path"
genFolder="${gen.absolute.dir}"
resFolder="${out.res.absolute.dir}/raw"
- targetApi="${project.minSdkVersion}"
+ targetApi="${renderscript.target}"
optLevel="${renderscript.opt.level}"
buildType="${build.is.packaging.debug}"
previousBuildType="${build.last.is.packaging.debug}">
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java
index d2a5fdb..48acb56 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java
@@ -60,6 +60,8 @@ public class ProjectProperties implements IPropertySource {
/** The property name for the project target */
public final static String PROPERTY_TARGET = "target";
+ /** The property name for the renderscript build target */
+ public final static String PROPERTY_RS_TARGET = "renderscript.target";
public final static String PROPERTY_LIBRARY = "android.library";
public final static String PROPERTY_LIB_REF = "android.library.reference.";