view mercurial.xml @ 379:55c2c88a2d82 Eluru-6.5.x

TW-17630, TW-18815 fix encoding for hg log command Mercurial stores commit messages in UTF-8. During commit it tries to guess a system encoding and transcode message from system encoding to UTF-8. When it prints to output it transcodes from UTF-8 to the system encoding and replace characters which cannot be represented in the system encoding with the symbol of '?'. Default console encoding on windows is cp437, and it cannot represent non-latin symbols, see http://mercurial.selenic.com/wiki/CharacterEncodingOnWindows for details. The fix is to not use a console to run hg, and tell mercurial to do the output in UTF-8.
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 15 Feb 2012 12:07:12 +0400
parents fea86366d792
children 55e8947b54ee
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<project name="mercurial" default="all">
  
  
  <property file="mercurial.properties"/>
  <!-- Uncomment the following property if no tests compilation is needed -->
  <!-- 
  <property name="skip.tests" value="true"/>
   -->
  
  <!-- Compiler options -->
  
  <property name="compiler.debug" value="on"/>
  <property name="compiler.generate.no.warnings" value="off"/>
  <property name="compiler.args" value=""/>
  <property name="compiler.max.memory" value="128m"/>
  <patternset id="ignored.files">
    <exclude name="**/CVS/**"/>
    <exclude name="**/SCCS/**"/>
    <exclude name="**/RCS/**"/>
    <exclude name="**/rcs/**"/>
    <exclude name="**/.DS_Store/**"/>
    <exclude name="**/.svn/**"/>
    <exclude name="**/.pyc/**"/>
    <exclude name="**/.pyo/**"/>
    <exclude name="**/*.pyc/**"/>
    <exclude name="**/*.pyo/**"/>
    <exclude name="**/.git/**"/>
    <exclude name="**/*.hprof/**"/>
    <exclude name="**/_svn/**"/>
    <exclude name="**/.hg/**"/>
    <exclude name="**/.sbas/**"/>
    <exclude name="**/.IJI.*/**"/>
    <exclude name="**/vssver.scc/**"/>
    <exclude name="**/vssver2.scc/**"/>
    <exclude name="**/*.orig/**"/>
    <exclude name="**/*.lib/**"/>
    <exclude name="**/*~/**"/>
    <exclude name="**/__pycache__/**"/>
    <exclude name="**/.bundle/**"/>
  </patternset>
  <patternset id="library.patterns">
    <include name="*.zip"/>
    <include name="*.war"/>
    <include name="*.egg"/>
    <include name="*.ear"/>
    <include name="*.swc"/>
    <include name="*.jar"/>
  </patternset>
  <patternset id="compiler.resources">
    <include name="**/?*.properties"/>
    <include name="**/?*.xml"/>
    <include name="**/?*.gif"/>
    <include name="**/?*.png"/>
    <include name="**/?*.jpeg"/>
    <include name="**/?*.jpg"/>
    <include name="**/?*.html"/>
    <include name="**/?*.dtd"/>
    <include name="**/?*.tld"/>
    <include name="**/?*.jsp"/>
    <include name="**/?*.tag"/>
    <include name="**/?*.template"/>
  </patternset>
  
  <!-- JDK definitions -->
  
  <property name="jdk.bin.1.5" value="${jdk.home.1.5}/bin"/>
  <path id="jdk.classpath.1.5">
    <fileset dir="${jdk.home.1.5}">
      <include name="jre/lib/rt.jar"/>
      <include name="jre/lib/jce.jar"/>
      <include name="jre/lib/deploy.jar"/>
      <include name="jre/lib/javaws.jar"/>
      <include name="jre/lib/jsse.jar"/>
      <include name="jre/lib/charsets.jar"/>
      <include name="jre/lib/plugin.jar"/>
      <include name="jre/lib/ext/localedata.jar"/>
      <include name="jre/lib/ext/sunpkcs11.jar"/>
      <include name="jre/lib/ext/sunjce_provider.jar"/>
      <include name="jre/lib/ext/dnsns.jar"/>
    </fileset>
  </path>
  
  <property name="project.jdk.home" value="${jdk.home.1.5}"/>
  <property name="project.jdk.bin" value="${jdk.bin.1.5}"/>
  <property name="project.jdk.classpath" value="jdk.classpath.1.5"/>
  
  
  <!-- Project Libraries -->
  
  <path id="library.idea-openapi.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/annotations.jar"/>
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/openapi.jar"/>
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/resources_en.jar"/>
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/util.jar"/>
  </path>
  
  <path id="library.jdom.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/jdom.jar"/>
  </path>
  
  <path id="library.jmock.classpath">
    <pathelement location="${basedir}/mercurial-tests/lib/hamcrest-core-1.1.jar"/>
    <pathelement location="${basedir}/mercurial-tests/lib/hamcrest-library-1.1.jar"/>
    <pathelement location="${basedir}/mercurial-tests/lib/jmock-2.5.1.jar"/>
    <pathelement location="${basedir}/mercurial-tests/lib/jmock-SNAPSHOT.jar"/>
  </path>
  
  <path id="library.junit.classpath">
    <pathelement location="${basedir}/mercurial-tests/lib/junit-3.8.1.jar"/>
  </path>
  
  <path id="library.log4j.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/log4j-1.2.12.jar"/>
  </path>
  
  <path id="library.teamcity-impl.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/patches-impl.jar"/>
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/trove4j.jar"/>
  </path>
  
  <path id="library.teamcity-testsapi.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/devPackage/tests/patches-test.jar"/>
  </path>
  
  <path id="library.teamcityapi-agent.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/devPackage/agent-api.jar"/>
  </path>
  
  <path id="library.teamcityapi-common.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/devPackage/common-api.jar"/>
  </path>
  
  <path id="library.teamcityapi-server.classpath">
    <pathelement location="${path.variable.teamcitydistribution}/devPackage/server-api.jar"/>
    <pathelement location="${path.variable.teamcitydistribution}/webapps/ROOT/WEB-INF/lib/server.jar"/>
  </path>
  
  <path id="library.testng.classpath">
    <pathelement location="${basedir}/mercurial-tests/lib/testng-5.7-jdk15.jar"/>
  </path>
  
  
  <!-- Global Libraries -->
  
  
  <!-- Application Server Libraries -->
  
  <!-- Modules -->
  
  
  <!-- Module main -->
  
  <dirname property="module.main.basedir" file="${ant.file}"/>
  
  
  <property name="module.jdk.home.main" value="${project.jdk.home}"/>
  <property name="module.jdk.bin.main" value="${project.jdk.bin}"/>
  <property name="module.jdk.classpath.main" value="${project.jdk.classpath}"/>
  
  <property name="compiler.args.main" value="${compiler.args}"/>
  
  <property name="main.output.dir" value="undefined"/>
  <property name="main.testoutput.dir" value="undefined"/>
  
  <path id="main.module.bootclasspath">
    <!-- Paths to be included in compilation bootclasspath -->
  </path>
  
  <path id="main.module.production.classpath">
    <path refid="${module.jdk.classpath.main}"/>
  </path>
  
  <path id="main.runtime.production.module.classpath"/>
  
  <path id="main.module.classpath">
    <path refid="${module.jdk.classpath.main}"/>
  </path>
  
  <path id="main.runtime.module.classpath"/>
  
  
  <patternset id="excluded.from.module.main">
    <patternset refid="ignored.files"/>
  </patternset>
  
  <patternset id="excluded.from.compilation.main">
    <patternset refid="excluded.from.module.main"/>
  </patternset>
  
  
  <target name="compile.module.main" depends="compile.module.main.production,compile.module.main.tests" description="Compile module main"/>
  
  <target name="compile.module.main.production" description="Compile module main; production classes"/>
  
  <target name="compile.module.main.tests" depends="compile.module.main.production" description="compile module main; test classes" unless="skip.tests"/>
  
  <target name="clean.module.main" description="cleanup module">
    <delete dir="${main.output.dir}"/>
    <delete dir="${main.testoutput.dir}"/>
  </target>
  
  
  <!-- Module mercurial-common -->
  
  <dirname property="module.mercurial-common.basedir" file="${ant.file}"/>
  
  
  <property name="module.jdk.home.mercurial-common" value="${project.jdk.home}"/>
  <property name="module.jdk.bin.mercurial-common" value="${project.jdk.bin}"/>
  <property name="module.jdk.classpath.mercurial-common" value="${project.jdk.classpath}"/>
  
  <property name="compiler.args.mercurial-common" value="${compiler.args}"/>
  
  <property name="mercurial-common.output.dir" value="${module.mercurial-common.basedir}/mercurial-common/classes"/>
  <property name="mercurial-common.testoutput.dir" value="${module.mercurial-common.basedir}/mercurial-common/classes"/>
  
  <path id="mercurial-common.module.bootclasspath">
    <!-- Paths to be included in compilation bootclasspath -->
  </path>
  
  <path id="mercurial-common.module.production.classpath">
    <path refid="${module.jdk.classpath.mercurial-common}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  <path id="mercurial-common.runtime.production.module.classpath">
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  <path id="mercurial-common.module.classpath">
    <path refid="${module.jdk.classpath.mercurial-common}"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  <path id="mercurial-common.runtime.module.classpath">
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  
  <patternset id="excluded.from.module.mercurial-common">
    <patternset refid="ignored.files"/>
  </patternset>
  
  <patternset id="excluded.from.compilation.mercurial-common">
    <patternset refid="excluded.from.module.mercurial-common"/>
  </patternset>
  
  <path id="mercurial-common.module.sourcepath">
    <dirset dir="${module.mercurial-common.basedir}/mercurial-common">
      <include name="src"/>
    </dirset>
  </path>
  
  
  <target name="compile.module.mercurial-common" depends="compile.module.mercurial-common.production,compile.module.mercurial-common.tests" description="Compile module mercurial-common"/>
  
  <target name="compile.module.mercurial-common.production" description="Compile module mercurial-common; production classes">
    <mkdir dir="${mercurial-common.output.dir}"/>
    <javac destdir="${mercurial-common.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.mercurial-common}/javac">
      <compilerarg line="${compiler.args.mercurial-common}"/>
      <bootclasspath refid="mercurial-common.module.bootclasspath"/>
      <classpath refid="mercurial-common.module.production.classpath"/>
      <src refid="mercurial-common.module.sourcepath"/>
      <patternset refid="excluded.from.compilation.mercurial-common"/>
    </javac>
    
    <copy todir="${mercurial-common.output.dir}">
      <fileset dir="${module.mercurial-common.basedir}/mercurial-common/src">
        <patternset refid="compiler.resources"/>
        <type type="file"/>
      </fileset>
    </copy>
  </target>
  
  <target name="compile.module.mercurial-common.tests" depends="compile.module.mercurial-common.production" description="compile module mercurial-common; test classes" unless="skip.tests"/>
  
  <target name="clean.module.mercurial-common" description="cleanup module">
    <delete dir="${mercurial-common.output.dir}"/>
    <delete dir="${mercurial-common.testoutput.dir}"/>
  </target>
  
  
  <!-- Module mercurial-agent -->
  
  <dirname property="module.mercurial-agent.basedir" file="${ant.file}"/>
  
  
  <property name="module.jdk.home.mercurial-agent" value="${project.jdk.home}"/>
  <property name="module.jdk.bin.mercurial-agent" value="${project.jdk.bin}"/>
  <property name="module.jdk.classpath.mercurial-agent" value="${project.jdk.classpath}"/>
  
  <property name="compiler.args.mercurial-agent" value="${compiler.args}"/>
  
  <property name="mercurial-agent.output.dir" value="${module.mercurial-agent.basedir}/mercurial-agent/classes"/>
  <property name="mercurial-agent.testoutput.dir" value="${module.mercurial-agent.basedir}/mercurial-agent/classes"/>
  
  <path id="mercurial-agent.module.bootclasspath">
    <!-- Paths to be included in compilation bootclasspath -->
  </path>
  
  <path id="mercurial-agent.module.production.classpath">
    <path refid="${module.jdk.classpath.mercurial-agent}"/>
    <path refid="library.teamcityapi-agent.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
  </path>
  
  <path id="mercurial-agent.runtime.production.module.classpath">
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcityapi-agent.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  <path id="mercurial-agent.module.classpath">
    <path refid="${module.jdk.classpath.mercurial-agent}"/>
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcityapi-agent.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
  </path>
  
  <path id="mercurial-agent.runtime.module.classpath">
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcityapi-agent.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  
  <patternset id="excluded.from.module.mercurial-agent">
    <patternset refid="ignored.files"/>
  </patternset>
  
  <patternset id="excluded.from.compilation.mercurial-agent">
    <patternset refid="excluded.from.module.mercurial-agent"/>
  </patternset>
  
  <path id="mercurial-agent.module.sourcepath">
    <dirset dir="${module.mercurial-agent.basedir}/mercurial-agent">
      <include name="src"/>
    </dirset>
  </path>
  
  
  <target name="compile.module.mercurial-agent" depends="compile.module.mercurial-agent.production,compile.module.mercurial-agent.tests" description="Compile module mercurial-agent"/>
  
  <target name="compile.module.mercurial-agent.production" depends="compile.module.mercurial-common" description="Compile module mercurial-agent; production classes">
    <mkdir dir="${mercurial-agent.output.dir}"/>
    <javac destdir="${mercurial-agent.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.mercurial-agent}/javac">
      <compilerarg line="${compiler.args.mercurial-agent}"/>
      <bootclasspath refid="mercurial-agent.module.bootclasspath"/>
      <classpath refid="mercurial-agent.module.production.classpath"/>
      <src refid="mercurial-agent.module.sourcepath"/>
      <patternset refid="excluded.from.compilation.mercurial-agent"/>
    </javac>
    
    <copy todir="${mercurial-agent.output.dir}">
      <fileset dir="${module.mercurial-agent.basedir}/mercurial-agent/src">
        <patternset refid="compiler.resources"/>
        <type type="file"/>
      </fileset>
    </copy>
  </target>
  
  <target name="compile.module.mercurial-agent.tests" depends="compile.module.mercurial-agent.production" description="compile module mercurial-agent; test classes" unless="skip.tests"/>
  
  <target name="clean.module.mercurial-agent" description="cleanup module">
    <delete dir="${mercurial-agent.output.dir}"/>
    <delete dir="${mercurial-agent.testoutput.dir}"/>
  </target>
  
  
  <!-- Module mercurial-server -->
  
  <dirname property="module.mercurial-server.basedir" file="${ant.file}"/>
  
  
  <property name="module.jdk.home.mercurial-server" value="${project.jdk.home}"/>
  <property name="module.jdk.bin.mercurial-server" value="${project.jdk.bin}"/>
  <property name="module.jdk.classpath.mercurial-server" value="${project.jdk.classpath}"/>
  
  <property name="compiler.args.mercurial-server" value="${compiler.args}"/>
  
  <property name="mercurial-server.output.dir" value="${module.mercurial-server.basedir}/mercurial-server/classes"/>
  <property name="mercurial-server.testoutput.dir" value="${module.mercurial-server.basedir}/mercurial-server/classes"/>
  
  <path id="mercurial-server.module.bootclasspath">
    <!-- Paths to be included in compilation bootclasspath -->
  </path>
  
  <path id="mercurial-server.module.production.classpath">
    <path refid="${module.jdk.classpath.mercurial-server}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
  </path>
  
  <path id="mercurial-server.runtime.production.module.classpath">
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  <path id="mercurial-server.module.classpath">
    <path refid="${module.jdk.classpath.mercurial-server}"/>
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
  </path>
  
  <path id="mercurial-server.runtime.module.classpath">
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.jdom.classpath"/>
  </path>
  
  
  <patternset id="excluded.from.module.mercurial-server">
    <patternset refid="ignored.files"/>
  </patternset>
  
  <patternset id="excluded.from.compilation.mercurial-server">
    <patternset refid="excluded.from.module.mercurial-server"/>
  </patternset>
  
  <path id="mercurial-server.module.sourcepath">
    <dirset dir="${module.mercurial-server.basedir}/mercurial-server">
      <include name="resources"/>
      <include name="src"/>
    </dirset>
  </path>
  
  
  <target name="compile.module.mercurial-server" depends="compile.module.mercurial-server.production,compile.module.mercurial-server.tests" description="Compile module mercurial-server"/>
  
  <target name="compile.module.mercurial-server.production" depends="compile.module.mercurial-common" description="Compile module mercurial-server; production classes">
    <mkdir dir="${mercurial-server.output.dir}"/>
    <javac destdir="${mercurial-server.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.mercurial-server}/javac">
      <compilerarg line="${compiler.args.mercurial-server}"/>
      <bootclasspath refid="mercurial-server.module.bootclasspath"/>
      <classpath refid="mercurial-server.module.production.classpath"/>
      <src refid="mercurial-server.module.sourcepath"/>
      <patternset refid="excluded.from.compilation.mercurial-server"/>
    </javac>
    
    <copy todir="${mercurial-server.output.dir}">
      <fileset dir="${module.mercurial-server.basedir}/mercurial-server/resources">
        <patternset refid="compiler.resources"/>
        <type type="file"/>
      </fileset>
      <fileset dir="${module.mercurial-server.basedir}/mercurial-server/src">
        <patternset refid="compiler.resources"/>
        <type type="file"/>
      </fileset>
    </copy>
  </target>
  
  <target name="compile.module.mercurial-server.tests" depends="compile.module.mercurial-server.production" description="compile module mercurial-server; test classes" unless="skip.tests"/>
  
  <target name="clean.module.mercurial-server" description="cleanup module">
    <delete dir="${mercurial-server.output.dir}"/>
    <delete dir="${mercurial-server.testoutput.dir}"/>
  </target>
  
  
  <!-- Module mercurial-tests -->
  
  <dirname property="module.mercurial-tests.basedir" file="${ant.file}"/>
  
  
  <property name="module.jdk.home.mercurial-tests" value="${project.jdk.home}"/>
  <property name="module.jdk.bin.mercurial-tests" value="${project.jdk.bin}"/>
  <property name="module.jdk.classpath.mercurial-tests" value="${project.jdk.classpath}"/>
  
  <property name="compiler.args.mercurial-tests" value="${compiler.args}"/>
  
  <property name="mercurial-tests.output.dir" value="${module.mercurial-tests.basedir}/mercurial-tests/classes"/>
  <property name="mercurial-tests.testoutput.dir" value="${module.mercurial-tests.basedir}/mercurial-tests/classes"/>
  
  <path id="mercurial-tests.module.bootclasspath">
    <!-- Paths to be included in compilation bootclasspath -->
  </path>
  
  <path id="mercurial-tests.module.production.classpath">
    <path refid="${module.jdk.classpath.mercurial-tests}"/>
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <path refid="library.junit.classpath"/>
    <path refid="library.testng.classpath"/>
    <path refid="library.jmock.classpath"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcity-testsapi.classpath"/>
    <path refid="library.teamcity-impl.classpath"/>
    <path refid="library.teamcityapi-agent.classpath"/>
  </path>
  
  <path id="mercurial-tests.runtime.production.module.classpath">
    <pathelement location="${mercurial-tests.output.dir}"/>
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.jdom.classpath"/>
    <path refid="library.junit.classpath"/>
    <path refid="library.testng.classpath"/>
    <path refid="library.jmock.classpath"/>
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcityapi-agent.classpath"/>
    <path refid="library.teamcity-testsapi.classpath"/>
    <path refid="library.teamcity-impl.classpath"/>
  </path>
  
  <path id="mercurial-tests.module.classpath">
    <path refid="${module.jdk.classpath.mercurial-tests}"/>
    <pathelement location="${mercurial-tests.output.dir}"/>
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <path refid="library.junit.classpath"/>
    <path refid="library.testng.classpath"/>
    <path refid="library.jmock.classpath"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcity-testsapi.classpath"/>
    <path refid="library.teamcity-impl.classpath"/>
    <path refid="library.teamcityapi-agent.classpath"/>
  </path>
  
  <path id="mercurial-tests.runtime.module.classpath">
    <pathelement location="${mercurial-tests.output.dir}"/>
    <pathelement location="${mercurial-server.output.dir}"/>
    <path refid="library.teamcityapi-server.classpath"/>
    <path refid="library.idea-openapi.classpath"/>
    <path refid="library.log4j.classpath"/>
    <pathelement location="${mercurial-common.output.dir}"/>
    <path refid="library.teamcityapi-common.classpath"/>
    <path refid="library.jdom.classpath"/>
    <path refid="library.junit.classpath"/>
    <path refid="library.testng.classpath"/>
    <path refid="library.jmock.classpath"/>
    <pathelement location="${mercurial-agent.output.dir}"/>
    <path refid="library.teamcityapi-agent.classpath"/>
    <path refid="library.teamcity-testsapi.classpath"/>
    <path refid="library.teamcity-impl.classpath"/>
  </path>
  
  
  <patternset id="excluded.from.module.mercurial-tests">
    <patternset refid="ignored.files"/>
  </patternset>
  
  <patternset id="excluded.from.compilation.mercurial-tests">
    <patternset refid="excluded.from.module.mercurial-tests"/>
  </patternset>
  
  <path id="mercurial-tests.module.test.sourcepath">
    <dirset dir="${module.mercurial-tests.basedir}/mercurial-tests">
      <include name="src"/>
    </dirset>
  </path>
  
  
  <target name="compile.module.mercurial-tests" depends="compile.module.mercurial-tests.production,compile.module.mercurial-tests.tests" description="Compile module mercurial-tests"/>
  
  <target name="compile.module.mercurial-tests.production" depends="compile.module.mercurial-server,compile.module.mercurial-common,compile.module.mercurial-agent" description="Compile module mercurial-tests; production classes"/>
  
  <target name="compile.module.mercurial-tests.tests" depends="compile.module.mercurial-tests.production" description="compile module mercurial-tests; test classes" unless="skip.tests">
    <mkdir dir="${mercurial-tests.testoutput.dir}"/>
    <javac destdir="${mercurial-tests.testoutput.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.mercurial-tests}/javac">
      <compilerarg line="${compiler.args.mercurial-tests}"/>
      <bootclasspath refid="mercurial-tests.module.bootclasspath"/>
      <classpath refid="mercurial-tests.module.classpath"/>
      <src refid="mercurial-tests.module.test.sourcepath"/>
      <patternset refid="excluded.from.compilation.mercurial-tests"/>
    </javac>
    
    <copy todir="${mercurial-tests.testoutput.dir}">
      <fileset dir="${module.mercurial-tests.basedir}/mercurial-tests/src">
        <patternset refid="compiler.resources"/>
        <type type="file"/>
      </fileset>
    </copy>
  </target>
  
  <target name="clean.module.mercurial-tests" description="cleanup module">
    <delete dir="${mercurial-tests.output.dir}"/>
    <delete dir="${mercurial-tests.testoutput.dir}"/>
  </target>
  
  <target name="init" description="Build initialization">
    <!-- Perform any build initialization in this target -->
  </target>
  
  <target name="clean" depends="clean.module.main, clean.module.mercurial-common, clean.module.mercurial-agent, clean.module.mercurial-server, clean.module.mercurial-tests" description="cleanup all"/>
  
  <target name="build.modules" depends="init, clean, compile.module.main, compile.module.mercurial-common, compile.module.mercurial-agent, compile.module.mercurial-server, compile.module.mercurial-tests" description="build all modules"/>
  
  <target name="all" depends="build.modules" description="build all"/>
</project>