Bug 975622 - Part 2: Add post builder. r=bnicholson

This commit is contained in:
Nick Alexander 2014-02-24 18:14:04 -08:00
parent 95f3d08c3b
commit 9f9db33bf9
3 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,18 @@
#filter substitution
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="post_build,"/>
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<booleanAttribute key="org.eclipse.debug.core.capture_output" value="true"/>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_OUTPUT_ON" value="true"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="@IDE_PROJECT_NAME@"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/@IDE_PROJECT_NAME@/post_build.xml}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="clean"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuild_type=&quot;${build_type}&quot;&#10;-Dbuild_files=&quot;DUMMY ${build_files}&quot;"/>
</launchConfiguration>

View File

@ -35,6 +35,15 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/PostBuilder.launch</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>

View File

@ -0,0 +1,45 @@
#filter substitution
<?xml version="1.0" encoding="UTF-8"?>
<project>
<property name="topsrcdir" value="@IDE_TOPSRCDIR@"/>
<property name="topobjdir" value="@IDE_TOPOBJDIR@"/>
<property name="objdir" value="@IDE_OBJDIR@"/>
<property name="project_name" value="@IDE_PROJECT_NAME@"/>
<!-- This file can get large (!), but for a short time we want to
log as much information for debugging build loops as possible. -->
<record name="${topobjdir}/android_eclipse/build.log" append="yes" />
<target name="build_needed" >
<script language="javascript" >
<![CDATA[
importClass(java.io.File);
var build_files = project.getProperty("build_files").split(" ");
var after = [];
var echo = project.createTask("echo");
var info = Packages.org.apache.tools.ant.taskdefs.Echo.EchoLevel();
info.setValue("info");
echo.setLevel(info);
// Timestamp.
echo.addText(project.getProperty("project_name") + " build type " + project.getProperty("build_type") + " started at: " + new Date());
echo.addText(project.getProperty("line.separator"));
echo.perform();
// The if below checks for the property being defined, not its value.
project.setProperty("build_needed", build_needed);
]]>
</script>
</target>
<target name="post_build" depends="build_needed" if="build_needed">
<exec executable="${topsrcdir}/mach" dir="${topobjdir}" failonerror="true">
<arg value="build"/>
<arg value="${objdir}/ANDROID_ECLIPSE_PROJECT_${project_name}"/>
</exec>
</target>
</project>