<!--
/*
* © 2016 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html#License
*******************************************************************************
* 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>
