summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat@free.fr>2014-04-01 22:40:00 +0200
committerCédric Bosdonnat <cedric.bosdonnat@free.fr>2014-04-01 22:40:00 +0200
commita991733db00c6bcd95c8234ae6e0f95e633e2a1d (patch)
tree468c0c2b1e9f806cf3e3aeed1312f2813819b05e
parentffaa2f6211f36d828b586b2cafec3a643ce16bbf (diff)
Generate an ant build file for exported projectsHEADmaster
-rw-r--r--java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java69
-rw-r--r--java/source/org/openoffice/ide/eclipse/java/export/build.xml182
-rw-r--r--java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl212
-rw-r--r--java/source/org/openoffice/ide/eclipse/java/messages.properties1
4 files changed, 265 insertions, 199 deletions
diff --git a/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java b/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java
index 69fcbb9..3c8dbd2 100644
--- a/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java
+++ b/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java
@@ -20,16 +20,23 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
- *
+ *
* The Initial Developer of the Original Code is: Cédric Bosdonnat.
*
* Copyright: 2009 by Cédric Bosdonnat
*
* All Rights Reserved.
- *
+ *
************************************************************************/
package org.openoffice.ide.eclipse.java.export;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
@@ -41,14 +48,17 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
+import org.openoffice.ide.eclipse.core.PluginLogger;
+import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
import org.openoffice.ide.eclipse.core.model.language.LanguageExportPart;
import org.openoffice.ide.eclipse.core.wizards.pages.ManifestExportPage;
import org.openoffice.ide.eclipse.java.Messages;
+import org.openoffice.ide.eclipse.java.utils.TemplatesHelper;
import org.openoffice.plugin.core.model.UnoPackage;
/**
* Dialog part for the Ant scripts export configuration.
- *
+ *
* @author Cédric Bosdonnat
*
*/
@@ -60,38 +70,38 @@ public class JavaExportPart extends LanguageExportPart {
private Text mNameRowTxt;
private JavaExportPageControl mController;
-
+
/**
* {@inheritDoc}
*/
@Override
public void createControls(Composite pParent) {
-
+
mController = new JavaExportPageControl();
-
+
Label titleLbl = new Label( pParent, SWT.NONE );
titleLbl.setText( Messages.getString("JavaExportPart.Title") ); //$NON-NLS-1$
titleLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.BEGINNING, false, false ) );
-
+
Composite content = new Composite( pParent, SWT.NONE );
GridData gd = new GridData( SWT.FILL, SWT.FILL, true, true );
gd.horizontalIndent = ManifestExportPage.HORIZONTAL_INDENT;
content.setLayoutData( gd );
content.setLayout( new GridLayout() );
-
+
mSaveScripts = new Button( content, SWT.CHECK );
mSaveScripts.setText( Messages.getString("JavaExportPart.SaveAntScript") ); //$NON-NLS-1$
mSaveScripts.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
mSaveScripts.addSelectionListener( new SelectionListener() {
-
+
public void widgetSelected( SelectionEvent pE ) {
-
+
mController.setSaveAntScript( mSaveScripts.getSelection() );
-
+
mNameRowLbl.setEnabled( mController.isSavePathEnabled() );
mNameRowTxt.setEnabled( mController.isSavePathEnabled() );
}
-
+
public void widgetDefaultSelected( SelectionEvent pE ) {
widgetSelected( pE );
}
@@ -102,20 +112,20 @@ public class JavaExportPart extends LanguageExportPart {
gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false );
gd.horizontalIndent = ManifestExportPage.HORIZONTAL_INDENT;
mNameRow.setLayoutData( gd );
-
+
mNameRowLbl = new Label( mNameRow, SWT.NONE );
mNameRowLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
mNameRowLbl.setText( Messages.getString("JavaExportPart.AntFile") ); //$NON-NLS-1$
-
+
mNameRowTxt = new Text( mNameRow, SWT.BORDER | SWT.SINGLE );
mNameRowTxt.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) );
mNameRowTxt.addModifyListener( new ModifyListener() {
-
+
public void modifyText( ModifyEvent pEvent ) {
mController.setSavePath( mNameRowTxt.getText() );
}
});
-
+
// Load the default values
mSaveScripts.setSelection( mController.isSavePathEnabled() );
mNameRowTxt.setText( mController.getSavePath() );
@@ -140,7 +150,32 @@ public class JavaExportPart extends LanguageExportPart {
@Override
public void doFinish( UnoPackage pModel ) {
if ( mController.getSaveAntScript() ) {
- // TODO Generate the build script
+
+ // Generate the build script
+ IUnoidlProject unoProject = getPage().getProject();
+ String prjName = unoProject.getName();
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(unoProject.getName());
+
+ TemplatesHelper.copyTemplate( project, mController.getSavePath(),
+ JavaExportPart.class, new String( ), prjName );
+
+ // Generate the build.properties file
+ File dir = project.getFile(mController.getSavePath()).getLocation().toFile().getParentFile();
+ File propsFile = new File(dir, "build.properties"); //$NON-NLS-1$
+ FileWriter writer = null;
+
+ try {
+ writer = new FileWriter(propsFile);
+
+ Properties props = new Properties();
+ props.put("office.install.dir", new String()); //$NON-NLS-1$
+ props.put("sdk.dir", new String()); //$NON-NLS-1$
+ props.put("java.debug", "false"); //$NON-NLS-1$ //$NON-NLS-2$
+ props.store(writer, "This file can contain setup-dependent data, don't commit them!"); //$NON-NLS-1$
+ writer.close();
+ } catch ( IOException e ) {
+ PluginLogger.error( Messages.getString("JavaExportPart.BuildPropertiesError"), e ); //$NON-NLS-1$
+ }
}
}
}
diff --git a/java/source/org/openoffice/ide/eclipse/java/export/build.xml b/java/source/org/openoffice/ide/eclipse/java/export/build.xml
deleted file mode 100644
index 2e63008..0000000
--- a/java/source/org/openoffice/ide/eclipse/java/export/build.xml
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program.
- * If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright: 2009 by Cédric Bosdonnat
- *
- * All Rights Reserved.
- -->
-<project name="COOoder" default="package-oxt" basedir="..">
-
- <target name="init-env">
-
- <!-- set properties from libreoffice install and its SDK -->
- <echo message="Initializing the properties for LibreOffice"/>
-
- <property name="office.basis.dir" value="${office.install.dir}${file.separator}basis-link"/>
- <property name="office.ure.dir" value="${office.basis.dir}${file.separator}ure-link"/>
-
- <property name="office.libs.path" value="${office.install.dir}${file.separator}program${path.separator}${office.basis.dir}${file.separator}program${path.separator}${office.ure.dir}${file.separator}lib"/>
-
- <echo message="Office libs path: ${office.libs.path}"/>
-
- <path id="office.class.path">
- <fileset dir="${office.basis.dir}${file.separator}program${file.separator}classes">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="${office.ure.dir}${file.separator}share${file.separator}java">
- <include name="*.jar"/>
- </fileset>
- </path>
-
- <property name="office.unotypes.rdb"
- value="${office.ure.dir}${file.separator}share${file.separator}misc${file.separator}types.rdb"/>
-
- <property name="office.offapi.rdb"
- value="${office.basis.dir}${file.separator}program${file.separator}offapi.rdb"/>
-
- <property name="sdk.idl.dir" location="${sdk.dir}${file.separator}idl"/>
- <property name="sdk.idlc" value="${sdk.dir}${file.separator}${sdk.bin.dir}${file.separator}idlc"/>
- <property name="sdk.regmerge" value="${sdk.dir}${file.separator}${sdk.bin.dir}${file.separator}regmerge"/>
- <property name="sdk.javamaker" value="${sdk.dir}${file.separator}${sdk.bin.dir}${file.separator}javamaker"/>
-
- <property environment="env"/>
- <property name="office.tool.path" value="${env.PATH}${path.separator}${office.libs.path}"/>
-
- <!-- set properties for the project structure -->
- <property file=".unoproject"/>
- <property file="package.properties"/>
- <dirname property="project.dir" file="package.properties"/>
-
- <property name="build.dir" value="${project.build}"/>
- <property name="build.classes.dir" value="${build.dir}/classes"/>
- <property name="dist.dir" value="${build.dir}/dist"/>
-
- <!-- set properties for the output structure -->
-
- <property name="uno.package.name" value="${project.dir}${file.separator}${dist.dir}${file.separator}${ant.project.name}.oxt"/>
- <property name="src.dir.absolute" value="${project.dir}${project.srcdir}"/>
- <property name="idl.dir" value="${project.dir}${project.idl}"/>
-
- <property name="idl.out" value="${project.dir}${file.separator}${build.dir}${file.separator}idl"/>
- <property name="idl.out.urd" value="${idl.out}${file.separator}urd"/>
- <property name="idl.out.rdb" value="${idl.out}${file.separator}rdb"/>
- <property name="idl.rdb.name" value="types.rdb"/>
- <property name="idl.rdb.fullpath" value="${idl.out.rdb}${file.separator}${idl.rdb.name}"/>
-
- <!-- create a few empty directories -->
-
- <mkdir dir="${build.dir}" />
- <mkdir dir="${idl.out}"/>
- <mkdir dir="${idl.out.urd}"/>
- <mkdir dir="${idl.out.rdb}"/>
- <mkdir dir="${build.classes.dir}"/>
- <mkdir dir="${dist.dir}"/>
- </target>
-
- <target name="clean" depends="init-env">
- <delete dir="${build.dir}"/>
- </target>
-
- <target name="package-oxt" depends="package-jar">
- <!-- The manifest.xml file is extracted from the package build with Eclipse -->
-
- <zip destfile="${uno.package.name}" includes="${contents}">
- <fileset dir="." includes="${contents}"/>
- <zipfileset dir="descriptions" includes="**/*.txt" prefix="descriptions"/>
- <zipfileset file="ant/manifest.xml" fullpath="META-INF/manifest.xml"/>
- <zipfileset file="${dist.dir}/${ant.project.name}.jar"
- fullpath="${ant.project.name}.jar"/>
- <zipfileset file="${idl.rdb.fullpath}" fullpath="types.rdb"/>
- </zip>
- </target>
-
- <target name="package-jar" depends="compile-java">
- <jar destfile="${dist.dir}/${ant.project.name}.jar">
- <manifest>
- <attribute name="RegistrationClassName" value="${regclassname}"/>
- </manifest>
- <fileset dir="${build.classes.dir}">
- <include name="**/*.class"/>
- </fileset>
- <fileset dir="${src.dir.absolute}">
- <exclude name="**/*.java"/>
- </fileset>
- </jar>
- </target>
-
- <target name="compile-java" depends="types">
- <echo message="build classes: ${build.classes.dir}"/>
- <javac srcdir="${src.dir.absolute}" source="1.4" target="1.4" encoding="UTF-8"
- destdir="${build.classes.dir}" excludes="**/*Test*">
- <classpath>
- <pathelement location="${build.classes.dir}"/>
- <path refid="office.class.path"/>
- </classpath>
- </javac>
- </target>
-
- <target name="types" depends="merge-urd">
- <echo message="Generating java class files from rdb..."/>
- <condition property="args.offapi" value=" -X${office.offapi.rdb}" else="">
- <length string="${office.offapi.rdb}" when="greater" length="0" trim="true"/>
- </condition>
-
- <exec executable="${sdk.javamaker}" failonerror="true">
- <env key="PATH" path="${office.tool.path}"/>
- <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/>
- <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/>
- <arg value="-nD"/>
- <arg value="-Gc"/>
- <arg value="-BUCR"/>
- <arg value="-O"/>
- <arg value="${project.dir}${file.separator}${build.classes.dir}"/>
- <arg file="${idl.rdb.fullpath}"/>
- <arg line="-X${office.unotypes.rdb}${args.offapi}"/>
- </exec>
- </target>
-
- <target name="merge-urd" depends="compile-idl">
- <delete file="${idl.rdb.fullpath}"/>
- <apply executable="${sdk.regmerge}" failonerror="true">
- <env key="PATH" path="${office.tool.path}"/>
- <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/>
- <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/>
- <arg file="${idl.rdb.fullpath}"/>
- <arg value="/UCR"/>
- <fileset dir="${idl.out.urd}" includes="**/*.urd" casesensitive="yes"/>
- </apply>
- </target>
-
- <target name="compile-idl" depends="init-env">
- <echo message="${sdk.idlc}"/>
- <echo message="${office.tool.path}"/>
-
- <apply executable="${sdk.idlc}" failonerror="true">
- <env key="PATH" path="${office.tool.path}"/>
- <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/>
- <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/>
- <arg value="-C"/>
- <arg value="-O"/>
- <arg value="${idl.out.urd}"/>
- <arg value="-I"/>
- <arg value="${idl.dir}"/>
- <arg value="-I"/>
- <arg value="${sdk.idl.dir}"/>
- <fileset dir="${idl.dir}" includes="**/*.idl" casesensitive="yes"/>
- </apply>
- </target>
-
-</project>
diff --git a/java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl b/java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl
new file mode 100644
index 0000000..cc99f03
--- /dev/null
+++ b/java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="{0}" default="package-oxt" basedir=".">
+
+ <target name="init-env">
+
+ <!-- set properties from libreoffice install and its SDK -->
+ <property file="$'{'ant.file}/../build.properties"/>
+
+ <echo message="Initializing the properties for LibreOffice"/>
+ <first id="sofficeParents">
+ <dirset dir="$'{'office.install.dir}">
+ <present targetdir="$'{'office.install.dir}">
+ <mapper type="glob" from="*" to="*/soffice.bin" />
+ </present>
+ </dirset>
+ </first>
+ <property name="office.basis.dir" value="$'{'toString:sofficeParents}$'{'file.separator}.."/>
+ <property name="office.ure.dir" value="$'{'office.basis.dir}$'{'file.separator}ure-link"/>
+
+ <property name="office.libs.path" value="$'{'office.install.dir}$'{'file.separator}program$'{'path.separator}$'{'office.basis.dir}$'{'file.separator}program$'{'path.separator}$'{'office.ure.dir}$'{'file.separator}lib"/>
+
+ <echo message="Office libs path: $'{'office.libs.path}"/>
+
+ <path id="office.class.path">
+ <fileset dir="$'{'office.basis.dir}$'{'file.separator}program$'{'file.separator}classes">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="$'{'office.ure.dir}$'{'file.separator}share$'{'file.separator}java">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+
+ <property name="office.unotypes.rdb"
+ value="$'{'office.ure.dir}$'{'file.separator}share$'{'file.separator}misc$'{'file.separator}types.rdb"/>
+
+ <first id="offapirdbPaths">
+ <fileset dir="$'{'office.install.dir}" includes="**/offapi.rdb" />
+ </first>
+ <property name="office.offapi.rdb" value="$'{'toString:offapirdbPaths}"/>
+
+ <property name="sdk.idl.dir" location="$'{'sdk.dir}$'{'file.separator}idl"/>
+ <property name="sdk.idlc" value="$'{'sdk.dir}$'{'file.separator}$'{'sdk.bin.dir}$'{'file.separator}idlc"/>
+ <property name="sdk.javamaker" value="$'{'sdk.dir}$'{'file.separator}$'{'sdk.bin.dir}$'{'file.separator}javamaker"/>
+
+ <first id="regmergePaths">
+ <union>
+ <fileset dir="$'{'office.ure.dir}" includes="**/regmerge" />
+ <fileset dir="$'{'sdk.dir}" includes="**/regmerge" />
+ </union>
+ </first>
+ <property name="sdk.regmerge" value="$'{'toString:regmergePaths}"/>
+
+ <property environment="env"/>
+ <property name="office.tool.path" value="$'{'env.PATH}$'{'path.separator}$'{'office.libs.path}"/>
+
+ <!-- set properties for the project structure -->
+ <property file=".unoproject"/>
+ <property file="package.properties"/>
+ <dirname property="project.dir" file="package.properties"/>
+
+ <property name="build.dir" value="$'{'project.build}"/>
+ <property name="build.classes.dir" value="$'{'build.dir}/classes"/>
+ <property name="dist.dir" value="$'{'build.dir}/dist"/>
+
+ <!-- set properties for the output structure -->
+
+ <property name="uno.package.name" value="$'{'project.dir}$'{'file.separator}$'{'dist.dir}$'{'file.separator}$'{'ant.project.name}.oxt"/>
+ <property name="src.dir.absolute" value="$'{'project.dir}$'{'project.srcdir}"/>
+ <property name="idl.dir" value="$'{'project.dir}$'{'project.idl}"/>
+
+ <property name="idl.out" value="$'{'project.dir}$'{'file.separator}$'{'build.dir}$'{'file.separator}idl"/>
+ <property name="idl.out.urd" value="$'{'idl.out}$'{'file.separator}urd"/>
+ <property name="idl.out.rdb" value="$'{'idl.out}$'{'file.separator}rdb"/>
+ <property name="idl.rdb.name" value="types.rdb"/>
+ <property name="idl.rdb.fullpath" value="$'{'idl.out.rdb}$'{'file.separator}$'{'idl.rdb.name}"/>
+
+ <!-- create a few empty directories -->
+
+ <mkdir dir="$'{'build.dir}" />
+ <mkdir dir="$'{'idl.out}"/>
+ <mkdir dir="$'{'idl.out.urd}"/>
+ <mkdir dir="$'{'idl.out.rdb}"/>
+ <mkdir dir="$'{'build.classes.dir}"/>
+ <mkdir dir="$'{'dist.dir}"/>
+ </target>
+
+ <target name="clean" depends="init-env">
+ <delete dir="$'{'build.dir}"/>
+ </target>
+
+ <target name="package-oxt" depends="package-jar">
+ <zip destfile="$'{'uno.package.name}" includes="$'{'contents}">
+ <fileset dir="." includes="$'{'contents}"/>
+ <zipfileset dir="descriptions" includes="**/*.txt" prefix="descriptions"/>
+ <zipfileset file="ant/manifest.xml" fullpath="META-INF/manifest.xml"/>
+ <zipfileset file="$'{'dist.dir}/$'{'ant.project.name}.jar"
+ fullpath="$'{'ant.project.name}.jar"/>
+ <zipfileset file="$'{'idl.rdb.fullpath}" fullpath="types.rdb"/>
+ </zip>
+ </target>
+
+ <target name="package-jar" depends="compile-java">
+ <jar destfile="$'{'dist.dir}/$'{'ant.project.name}.jar">
+ <manifest>
+ <attribute name="RegistrationClassName" value="$'{'regclassname}"/>
+ </manifest>
+ <fileset dir="$'{'build.classes.dir}">
+ <include name="**/*.class"/>
+ </fileset>
+ <fileset dir="$'{'src.dir.absolute}">
+ <exclude name="**/*.java"/>
+ </fileset>
+ </jar>
+ </target>
+
+ <target name="compile-java" depends="types">
+ <echo message="build classes: $'{'build.classes.dir}"/>
+ <javac srcdir="$'{'src.dir.absolute}" source="1.4" target="1.4" encoding="UTF-8"
+ destdir="$'{'build.classes.dir}" excludes="**/*Test*">
+ <classpath>
+ <pathelement location="$'{'build.classes.dir}"/>
+ <path refid="office.class.path"/>
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="types-old" depends="merge-urd">
+ <echo message="Generating java class files from rdb..."/>
+ <condition property="args.offapi" value=" -X$'{'office.offapi.rdb}" else="">
+ <length string="$'{'office.offapi.rdb}" when="greater" length="0" trim="true"/>
+ </condition>
+
+ <exec executable="$'{'sdk.javamaker}" errorproperty="regmerge.err"
+ resultproperty="regmerge.result">
+ <env key="PATH" path="$'{'office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <arg value="-nD"/>
+ <arg value="-Gc"/>
+ <arg value="-BUCR"/>
+ <arg value="-O"/>
+ <arg value="$'{'project.dir}$'{'file.separator}$'{'build.classes.dir}"/>
+ <arg file="$'{'idl.rdb.fullpath}"/>
+ <arg line="-X$'{'office.unotypes.rdb}$'{'args.offapi}"/>
+ </exec>
+
+ <condition property="regmerge.noprefix" value="true" else="false">
+ <contains string="$'{'regmerge.err}" substring="-BUCR"/>
+ </condition>
+
+ <condition property="regermerge.failed">
+ <and>
+ <isfalse value="$'{'regmerge.noprefix}"/>
+ <isfailure code="$'{'regmerge.result}"/>
+ </and>
+ </condition>
+
+ <fail if="$'{'regmerge.failed}" message="Regmerge failed: $'{'regmerge.err}"/>
+ </target>
+
+ <target name="types-noprefix" depends="types-old" if="$'{'regmerge.noprefix}">
+ <condition property="args.offapi" value=" -X$'{'office.offapi.rdb}" else="">
+ <length string="$'{'office.offapi.rdb}" when="greater" length="0" trim="true"/>
+ </condition>
+
+ <exec executable="$'{'sdk.javamaker}" failonerror="true">
+ <env key="PATH" path="$'{'office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <arg value="-nD"/>
+ <arg value="-Gc"/>
+ <arg value="-O"/>
+ <arg value="$'{'project.dir}$'{'file.separator}$'{'build.classes.dir}"/>
+ <arg file="$'{'idl.rdb.fullpath}"/>
+ <arg line="-X$'{'office.unotypes.rdb}$'{'args.offapi}"/>
+ </exec>
+ </target>
+
+ <target name="types" depends="types-old, types-noprefix" />
+
+ <target name="merge-urd" depends="compile-idl">
+ <delete file="$'{'idl.rdb.fullpath}"/>
+ <apply executable="$'{'sdk.regmerge}" failonerror="true">
+ <env key="PATH" path="$'{'office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <arg file="$'{'idl.rdb.fullpath}"/>
+ <arg value="/UCR"/>
+ <fileset dir="$'{'idl.out.urd}" includes="**/*.urd" casesensitive="yes"/>
+ </apply>
+ </target>
+
+ <target name="compile-idl" depends="init-env">
+ <echo message="$'{'sdk.idlc}"/>
+ <echo message="$'{'office.tool.path}"/>
+
+ <apply executable="$'{'sdk.idlc}" failonerror="true">
+ <env key="PATH" path="$'{'office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/>
+ <arg value="-C"/>
+ <arg value="-O"/>
+ <arg value="$'{'idl.out.urd}"/>
+ <arg value="-I"/>
+ <arg value="$'{'idl.dir}"/>
+ <arg value="-I"/>
+ <arg value="$'{'sdk.idl.dir}"/>
+ <fileset dir="$'{'idl.dir}" includes="**/*.idl" casesensitive="yes"/>
+ </apply>
+ </target>
+
+</project>
diff --git a/java/source/org/openoffice/ide/eclipse/java/messages.properties b/java/source/org/openoffice/ide/eclipse/java/messages.properties
index 8f4d8f2..9b802d7 100644
--- a/java/source/org/openoffice/ide/eclipse/java/messages.properties
+++ b/java/source/org/openoffice/ide/eclipse/java/messages.properties
@@ -4,6 +4,7 @@ Language.UnreadableOutputError=Unreadable output error
Language.CreateCodeError=Code generation failed
Language.GetClasspathError=Failed to get the project classpath
JavaExportPart.AntFile=Ant build file
+JavaExportPart.BuildPropertiesError=Error creating build.properties
JavaExportPart.SaveAntScript=Save as Ant script
JavaExportPart.Title=Java options
JavaWizardPage.IncludeTestClasses=Include base classes for tests