Initial commit of Sigil contribution. (FELIX-1142)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@793581 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/sigil-builder/build.xml b/sigil/sigil-builder/build.xml
new file mode 100644
index 0000000..4161e54
--- /dev/null
+++ b/sigil/sigil-builder/build.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project name="sigil-builder" default="build">
+ <property name="user.props" value="user.properties" />
+ <property file="${user.props}"/>
+ <property file="project.properties"/>
+ <property file="download.properties"/>
+
+ <property name="error.internal.target" value="Do not call this target directly"/>
+
+ <property name="eclipse.sdk" value="${eclipse.install.dir}"/>
+ <property name="extras.sdk" value="build-libs/target-platform-extras"/>
+
+ <condition property="isUnix">
+ <os family="unix"/>
+ </condition>
+
+ <!-- PUBLIC TARGETS -->
+
+ <target name="build"
+ depends="clean-tmp, target-platform, pdebuild"/>
+
+ <target name="clean-tmp">
+ <delete dir="target/tmp" />
+ </target>
+
+ <target name="clean">
+ <delete dir="target"/>
+ <delete dir="build-libs/classes"/>
+ </target>
+
+ <!-- create target platform -->
+ <target name="target-platform" depends="rsync-platform, copy-platform"/>
+
+ <target name="rsync-platform" if="isUnix">
+ <mkdir dir="${target.platform}/eclipse" />
+ <exec executable="rsync" append="true"
+ output="${target.platform}/rsync.log" >
+ <arg line="-av --delete ${eclipse.sdk}/ ${extras.sdk}/ ${target.platform}/eclipse" />
+ </exec>
+ </target>
+
+ <target name="copy-platform" unless="isUnix">
+ <mkdir dir="${target.platform}/eclipse" />
+ <copy todir="${target.platform}/eclipse">
+ <fileset dir="${eclipse.sdk}"/>
+ <fileset dir="${extras.sdk}" />
+ </copy>
+ </target>
+
+ <target name="init">
+ <mkdir dir="target"/>
+ <mkdir dir="target/features"/>
+ <mkdir dir="target/plugins"/>
+ </target>
+
+ <target name="custom.tasks">
+ <mkdir dir="build-libs/classes"/>
+ <javac srcdir="src" destdir="build-libs/classes" debug="on">
+ <classpath>
+ <fileset dir="build-libs">
+ <include name="osgi.core.jar"/>
+ </fileset>
+ </classpath>
+ </javac>
+ <taskdef name="findbundle" classname="org.cauldron.sigil.build.FindBundlesTask">
+ <classpath>
+ <pathelement location="build-libs/osgi.core.jar"/>
+ <pathelement location="build-libs/classes"/>
+ </classpath>
+ </taskdef>
+ <taskdef name="siteInsertFeatures" classname="org.cauldron.sigil.build.SiteInsertFeatures">
+ <classpath>
+ <pathelement location="build-libs/classes"/>
+ </classpath>
+ </taskdef>
+ </target>
+
+ <target name="findbundles" depends="custom.tasks">
+ <!-- Find the Equinox launcher JAR -->
+ <echo>${eclipse.install.dir}</echo>
+ <findbundle dir="${eclipse.install.dir}/plugins" symbolicname="org.eclipse.equinox.launcher" property="eclipse.launcher.version"/>
+ <property name="eclipse.launcher.jar" location="${eclipse.install.dir}/plugins/org.eclipse.equinox.launcher_${eclipse.launcher.version}.jar"/>
+
+ <!-- Find the PDE Build scripts -->
+ <findbundle dir="${eclipse.install.dir}/plugins" symbolicname="org.eclipse.pde.build" property="eclipse.pdebuild.version"/>
+ <property name="eclipse.productBuild.xml" location="${eclipse.install.dir}/plugins/org.eclipse.pde.build_${eclipse.pdebuild.version}/scripts/productBuild/productBuild.xml"/>
+ <property name="eclipse.featureBuild.xml" location="${eclipse.install.dir}/plugins/org.eclipse.pde.build_${eclipse.pdebuild.version}/scripts/build.xml"/>
+ </target>
+
+ <!-- Unused
+ <target name="download" depends="init">
+ <mkdir dir="${target.platform}"/>
+
+ <echo message="Downloading platform runtime"/>
+ <get dest="${target.platform}/platform-runtime.zip"
+ src="${download.base}/${download.dir}/${download.platform.runtime}" verbose="true"/>
+
+ <echo message="Downloading RCP delta pack"/>
+ <get dest="${target.platform}/deltapack.zip"
+ src="${download.base}/${download.dir}/${download.deltapack}" verbose="true"/>
+
+ <echo message="Downloading CVS client"/>
+ <get dest="${target.platform}/cvsclient.zip"
+ src="${download.base}/${download.dir}/${download.cvsclient}" verbose="true"/>
+
+ <unzip src="${target.platform}/platform-runtime.zip" dest="${target.platform}" overwrite="true"/>
+ <unzip src="${target.platform}/deltapack.zip" dest="${target.platform}" overwrite="true"/>
+ <unzip src="${target.platform}/cvsclient.zip" dest="${target.platform}" overwrite="true"/>
+ </target>
+ -->
+
+ <target name="copy.projects" depends="init">
+ <foreach list="${plugins}" param="plugin.id" target="__copy.plugin"/>
+ <foreach list="${features}" param="feature.id" target="__copy.feature"/>
+ </target>
+
+ <target name="copy.properties" depends="init">
+ <copy file="builder/template.build.properties" tofile="builder/build.properties" overwrite="true"/>
+ <pathconvert property="basedir.unix" targetos="unix">
+ <path location="${basedir}"/>
+ </pathconvert>
+ <replace file="builder/build.properties">
+ <replacefilter token="@@WARNING_TEXT" value="Warning! This file is auto-generated. Changes will be overwritten!"/>
+ <replacefilter token="@@BUILD_PROJECT_DIR" value="${basedir.unix}"/>
+ <replacefilter token="@@TARGET_PLATFORM" value="${target.platform}"/>
+ </replace>
+ </target>
+
+ <!-- Unused
+ <target name="copy.deps">
+ <copy todir="${target.platform}/eclipse/plugins">
+ <fileset dir="target-libs" includes="*.jar"/>
+ </copy>
+ </target>
+ -->
+
+ <target name="pdebuild" depends="findbundles,copy.projects,copy.properties">
+ <java jar="${eclipse.launcher.jar}" fork="true" failonerror="true">
+ <sysproperty key="builder" path="${basedir}/builder"/>
+ <arg line="-application org.eclipse.ant.core.antRunner"/>
+ <arg line="-buildfile ${eclipse.featureBuild.xml}"/>
+ </java>
+ </target>
+
+ <target name="new.updateSite">
+ <copy file="site.xml" todir="${updateSiteDir}"/>
+ <antcall target="copy.updateSite" />
+ </target>
+
+ <target name="copy.updateSite" depends="custom.tasks">
+ <copy todir="${updateSiteDir}">
+ <fileset dir="target/tmp/eclipse" includes="**/*.jar"/>
+ </copy>
+ <property file="target/finalFeaturesVersions.properties" prefix="featureVersions"/>
+ <siteInsertFeatures sitexmlfile="${updateSiteDir}/site.xml"
+ features="${features}"
+ versionPropPrefix="featureVersions"
+ categoryPropPrefix="category"/>
+ </target>
+
+ <!-- INTERNAL TARGETS -->
+ <target name="__copy.plugin">
+ <fail unless="plugin.id" message="${error.internal.target}"/>
+ <echo message="Copying plugin ${plugin.id}"/>
+ <antcall target="__copy.artifact">
+ <param name="artifact.id" value="${plugin.id}"/>
+ <param name="artifact.type" value="plugin"/>
+ </antcall>
+ </target>
+
+ <target name="__copy.feature">
+ <fail unless="feature.id" message="${error.internal.target}"/>
+ <antcall target="__copy.artifact">
+ <param name="artifact.id" value="${feature.id}"/>
+ <param name="artifact.type" value="feature"/>
+ </antcall>
+
+ <replace file="target/features/${feature.id}/feature.xml">
+ <replacefilter token="http://replace.with.real.url" value="${updateUrl}"/>
+ </replace>
+ </target>
+
+ <target name="__copy.artifact">
+ <fail unless="artifact.id" message="${error.internal.target}"/>
+ <fail unless="artifact.type" message="${error.internal.target}"/>
+
+ <echo message="Copying from ${source.dir}/${artifact.id} to target/${artifact.type}s"/>
+ <copy todir="target/${artifact.type}s">
+ <fileset dir="${source.dir}">
+ <exclude name="${artifact.id}/bin/**"/>
+ <exclude name="${artifact.id}/build/**"/>
+ <exclude name="${artifact.id}/**/*.class"/>
+ <include name="${artifact.id}/**"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="__nodefault">
+ <fail message="There is no default target"/>
+ </target>
+
+ <!-- TASK DEFINITIONS -->
+ <taskdef resource="net/sf/antcontrib/antlib.xml">
+ <classpath>
+ <pathelement location="build-libs/ant-contrib/ant-contrib-1.0b3.jar"/>
+ </classpath>
+ </taskdef>
+
+</project>