<!--
/*
* © 2016 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
*******************************************************************************
* Copyright (C) 2010,2016, International Business Machines Corporation and    *
* others. All Rights Reserved.                                                *
*******************************************************************************
*/
-->

<project name="icu4j-eclipse" default="build" basedir=".">
  <property file="build-local.properties"/>
  <property file="build.properties"/>

  <property name="out.dir" value="out"/>
  <property name="eclipse.projects.dir" value="${out.dir}/projects"/>

  <property name="main.dir" value="../main"/>
  <property name="shared.dir" value="${main.dir}/shared"/>

  <import file="${shared.dir}/build/common-targets.xml"/>
  <property file="${shared.dir}/build/common.properties"/>
  <property file="${shared.dir}/build/locations.properties"/>

  <property environment="env"/>

  <target name="clean" description="Delete all build outputs">
    <delete dir="${out.dir}"/>
  </target>

  <target name="build"
          depends="checkProps,initEnv,icuProjectFiles,icuTestsProjectFiles,icuBaseProjectFiles,icuBaseTestsProjectFiles"
          description="Build icu4j plug-ins">

    <!-- copy OSGi jar file to baseLocation -->
    <mkdir dir="${eclipse.projects.dir}/baseLocation/features"/>
    <mkdir dir="${eclipse.projects.dir}/baseLocation/plugins"/>
    <copy toDir="${eclipse.projects.dir}/baseLocation/plugins" file="${eclipse.osgi.jar}"/>

    <!-- copy PDE build script files and run the build -->
    <pathconvert property="eclipse.projects.dir.full" dirsep="/">
      <path location="${basedir}/${eclipse.projects.dir}"/>
    </pathconvert>

    <antcall target="runEclipsePDEBuild">
      <param name="icu.plugin.id" value="com.ibm.icu"/>
    </antcall>

    <antcall target="runEclipsePDEBuild">
      <param name="icu.plugin.id" value="com.ibm.icu.base"/>
    </antcall>

  </target>

  <target name="initEclipseHome"
          if="env.ECLIPSE_HOME"
          unless="eclipse.home"
          description="Initialize the property eclipse.home from the environment variable ECLIPSE_HOME">
    <property name="eclipse.home" value="${env.ECLIPSE_HOME}"/>
  </target>

  <target name="checkProps" depends="initEclipseHome">
      <fail message="Eclipse home (eclipse.home or env.ECLIPSE_HOME) is not set">
        <condition>
          <or>
            <equals arg1="${eclipse.home}" arg2=""/>
            <not>
              <isset property="eclipse.home"/>
            </not>
          </or>
        </condition>
      </fail>
      <fail message="Java runtime jar path (java.rt) is not set">
        <condition>
          <or>
            <equals arg1="${java.rt}" arg2=""/>
            <not>
              <isset property="java.rt"/>
            </not>
          </or>
        </condition>
      </fail>
  </target>

  <target name="initPluginVersion">
    <tstamp>
      <format property="build.date" pattern="yyyyMMdd"/>
    </tstamp>
    <property name="icu4j.eclipse.build.version.string" value="${icu4j.plugin.impl.version.string}.v${build.date}"/>
  </target>

  <target name="initEnv"
          depends="checkProps,initEclipseLauncher,initEclipseOSGiJar,initEclipsePDE"
          description="Initialize eclipse PDE build environment">
    <echo message="[PDE build configuration properties]"/>
    <echo message="    Ant version:     ${ant.version}"/>
    <echo message="    Eclipse home:    ${eclipse.home}"/>
    <echo message="    Launcher jar:    ${eclipse.launcher}"/>
    <echo message="    OSGi bundle jar: ${eclipse.osgi.jar}"/>
    <echo message="    Base OS:         ${eclipse.baseos}"/>
    <echo message="    Base WS:         ${eclipse.basews}"/>
    <echo message="    Base ARCH:       ${eclipse.basearch}"/>
    <echo message="    java.rt:         ${java.rt}"/>
      
    <!-- try and detect use of backslashes  -->
    <condition property="java-rt-has-noSlashes">
        <matches pattern="/" string="${java.rt}"/>
    </condition>      
    <fail message="java.rt variable has no slashes!" unless="java-rt-has-noSlashes"/>

  </target>
    
  <target name="initEclipseLauncher"
          if="eclipse.home"
          description="Locate org.eclipse.equinox.launcher jar file for eclipse 3.3 and beyond">
    <first id="equinox.launcher">
      <fileset dir="${eclipse.home}/plugins">
        <include name="org.eclipse.equinox.launcher_*.jar"/>
      </fileset>
    </first>
    <pathconvert property="eclipse.launcher" dirsep="/" refid="equinox.launcher"/>
  </target>

  <target name="initEclipseOSGiJar"
          if="eclipse.home"
          description="Locate org.eclipse.osgi plugin jar file">
    <first id="osgi.bundle">
      <fileset dir="${eclipse.home}/plugins">
        <include name="org.eclipse.osgi_*.jar"/>
      </fileset>
    </first>
    <pathconvert property="eclipse.osgi.jar" dirsep="/" refid="osgi.bundle"/>
  </target>

  <target name="initEclipsePDE"
          depends="locateEclipsePDE"
          if="eclipse.pde.dir"
          description="Set up PDE runtime arguments">
    <property file="${eclipse.pde.dir}/templates/headless-build/build.properties" prefix="pde.template"/>
    <property name="eclipse.baseos" value="${pde.template.baseos}"/>
    <property name="eclipse.basews" value="${pde.template.basews}"/>
    <property name="eclipse.basearch" value="${pde.template.basearch}"/>
  </target>

  <target name="locateEclipsePDE"
          if="eclipse.home"
          description="Locate org.eclipse.pde.build plug-in and set the property 'eclipse.pde.dir'">
    <first id="eclipse.pde.plugin.dir">
      <dirset dir="${eclipse.home}/plugins">
        <include name="org.eclipse.pde.build_*"/>
      </dirset>
    </first>
    <pathconvert property="eclipse.pde.dir" dirsep="/" refid="eclipse.pde.plugin.dir"/>
  </target>

  <target name="runEclipsePDEBuild">
    <mkdir dir="${eclipse.projects.dir}/buildScripts/${icu.plugin.id}"/>
      <copy toDir="${eclipse.projects.dir}/buildScripts/${icu.plugin.id}">
        <fileset dir="pdebuild" includes="**/*"/>
          <filterset>
            <filter token="PLUGIN_ID" value="${icu.plugin.id}"/>
            <filter token="BUILD_DIR" value="${eclipse.projects.dir.full}"/>
            <filter token="BUILD_TYPE" value="ICU4J"/>
            <filter token="BUILD_ID" value="${icu.plugin.id}"/>
            <filter token="BASE_LOCATION" value="${eclipse.projects.dir.full}/baseLocation"/>
            <filter token="BASE_OS" value="${eclipse.baseos}"/>
            <filter token="BASE_WS" value="${eclipse.basews}"/>
            <filter token="BASE_ARCH" value="${eclipse.basearch}"/>
            <filter token="JAVA_RT" value="${java.rt}"/>
          </filterset>
      </copy>

      <java jar="${eclipse.launcher}" fork="true" failonerror="true">
        <arg value="-application"/>
        <arg value="org.eclipse.ant.core.antRunner"/>
        <arg value="-buildfile"/>
        <arg value="${eclipse.pde.dir}/scripts/build.xml"/>
        <arg value="-Dbuilder=${eclipse.projects.dir.full}/buildScripts/${icu.plugin.id}"/>
      </java>
  </target>

  <target name="icuProjectFiles"
        depends="initPluginVersion"
        description="Copy com.ibm.icu plug-in project files">

    <delete failonerror="no">
      <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu" />
      <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu" />
    </delete>

    <!-- icu source -->
    <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu/src">
      <fileset dir="${icu4j.collate.dir}/src"/>
      <fileset dir="${icu4j.core.dir}/src"/>
      <fileset dir="${icu4j.currdata.dir}/src"/>
      <fileset dir="${icu4j.langdata.dir}/src"/>
      <fileset dir="${icu4j.regiondata.dir}/src"/>
      <fileset dir="${icu4j.translit.dir}/src"/>
    </copy>

    <!-- overwriting the ICU runtime configuration file for forcing ICU4J plugin to use JDK time zone rules -->
    <copy file="misc/ICUConfig.properties"
      toDir="${eclipse.projects.dir}/plugins/com.ibm.icu/src/com/ibm/icu"
      overwrite="true"/>

    <!-- icu data -->
    <unjar src="${icu4j.data.jar}" dest="${eclipse.projects.dir}/plugins/com.ibm.icu/src">
      <patternset>
        <exclude name="META-INF"/>
        <exclude name="META-INF/**/*"/>
        <exclude name="**/*.cnv"/>
        <exclude name="**/cnvalias.icu"/>
      </patternset>
    </unjar>

    <!-- icu tz data -->
    <unjar src="${icu4j.tzdata.jar}" dest="${eclipse.projects.dir}/plugins/com.ibm.icu/src">
      <patternset>
        <exclude name="META-INF"/>
        <exclude name="META-INF/**/*"/>
      </patternset>
    </unjar>

    <!-- full locale names lists -->
    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/brkitr"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/coll"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/curr"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/lang"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/rbnf"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/region"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/translit"/>
    </antcall>

    <antcall target="@full-locale-names">
        <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/zone"/>
    </antcall>

    <!-- plugin project -->
    <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu">
      <fileset dir="plugins.template/com.ibm.icu"/>
      <filterset>
        <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
        <filter token="COPYRIGHT" value="${copyright.eclipse}" />
        <filter token="IMPL_VERSION" value="${icu4j.impl.version}" />
        <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
      </filterset>
    </copy>

    <!-- license -->
    <copy file="${shared.dir}/licenses/LICENSE"
          todir="${eclipse.projects.dir}/plugins/com.ibm.icu/about_files" />

    <!-- about -->
    <copy file="misc/about_icu.html"
          tofile="${eclipse.projects.dir}/plugins/com.ibm.icu/about.html" />

    <!-- FEATURE FILES -->
    <copy todir="${eclipse.projects.dir}/features/com.ibm.icu">
      <fileset dir="features.template/com.ibm.icu"/>
      <filterset>
        <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
        <filter token="COPYRIGHT" value="${copyright.eclipse}" />
        <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
      </filterset>
    </copy>

  </target>

  <target name="icuTestsProjectFiles"
        depends="initPluginVersion"
        description="Copy com.ibm.icu.tests plug-in project files">

    <delete failonerror="no">
      <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests" />
    </delete>

    <!-- icu test source -->
    <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src">
      <fileset dir="${icu4j.test-framework.dir}/src"/>
      <fileset dir="${icu4j.core-tests.dir}/src"/>
      <fileset dir="${icu4j.collate-tests.dir}/src"/>
      <fileset dir="${icu4j.translit-tests.dir}/src"/>
    </copy>

    <!-- icu test data -->
    <unjar src="${icu4j.testdata.jar}" dest="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src">
      <patternset>
        <exclude name="**/*.cnv"/>
        <exclude name="**/cnvalias.icu"/>
        <exclude name="META-INF"/>
        <exclude name="META-INF/**/*"/>
      </patternset>
    </unjar>

    <!-- plugin project -->
    <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests">
      <fileset dir="plugins.template/com.ibm.icu.tests"/>
      <filterset>
        <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
        <filter token="COPYRIGHT" value="${copyright.eclipse}" />
        <filter token="IMPL_VERSION" value="${icu4j.impl.version}" />
        <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
      </filterset>
    </copy>

    <!-- license -->
    <copy file="${shared.dir}/licenses/LICENSE"
          todir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/about_files" />

    <!-- about -->
    <copy file="misc/about_icu.html"
          tofile="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/about.html" />

  </target>

  <target name="icuBaseProjectFiles"
        depends="initPluginVersion"
        description="Copy com.ibm.icu.base plug-in project files">

    <delete failonerror="no">
      <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.base" />
      <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu.base" />
    </delete>

    <!-- plugin project -->
    <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu.base">
      <fileset dir="plugins.template/com.ibm.icu.base"/>
      <filterset>
        <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
        <filter token="COPYRIGHT" value="${copyright.eclipse}" />
        <filter token="IMPL_VERSION" value="${icu4j.impl.version}" />
        <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
      </filterset>
    </copy>

    <!-- license -->
    <copy file="${shared.dir}/licenses/LICENSE"
          todir="${eclipse.projects.dir}/plugins/com.ibm.icu.base/about_files" />

    <!-- about -->
    <copy file="misc/about_icu.html"
          tofile="${eclipse.projects.dir}/plugins/com.ibm.icu.base/about.html" />

    <!-- FEATURE FILES -->
    <copy todir="${eclipse.projects.dir}/features/com.ibm.icu.base">
      <fileset dir="features.template/com.ibm.icu.base"/>
      <filterset>
        <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
        <filter token="COPYRIGHT" value="${copyright.eclipse}" />
        <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
      </filterset>
    </copy>

  </target>

  <target name="icuBaseTestsProjectFiles"
        depends="initPluginVersion"
        description="Copy com.ibm.icu.base.tests plug-in project files">

    <delete failonerror="no">
      <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.base.tests" />
    </delete>

    <!-- plugin project -->
    <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu.base.tests">
      <fileset dir="plugins.template/com.ibm.icu.base.tests"/>
      <filterset>
        <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
        <filter token="COPYRIGHT" value="${copyright.eclipse}" />
        <filter token="IMPL_VERSION" value="${icu4j.impl.version}" />
        <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
      </filterset>
    </copy>

    <!-- license -->
    <copy file="${shared.dir}/licenses/LICENSE"
          todir="${eclipse.projects.dir}/plugins/com.ibm.icu.base.tests/about_files" />

    <!-- about -->
    <copy file="misc/about_icu.html"
          tofile="${eclipse.projects.dir}/plugins/com.ibm.icu.base.tests/about.html" />

  </target>

</project>
