Skip to content
Snippets Groups Projects
build.xml 10.4 KiB
Newer Older
<?xml version="1.0" encoding="UTF-8"?>

<project name="orekit" default="jar" basedir=".">
  <property name="project.version"            value="11.1" />
  <property name="src.dir"                    location="src"                    />
  <property name="main.src.dir"               value="${src.dir}/main/java"      />
  <property name="main.resources.dir"         value="${src.dir}/main/resources" />
  <property name="test.src.dir"               value="${src.dir}/test/java"      />
  <property name="test.resources.dir"         value="${src.dir}/test/resources" />
  <property name="build.dir"                  location="build"                  />
  <property name="main.classes.dir"           value="${build.dir}/classes"      />
  <property name="test.classes.dir"           value="${build.dir}/test-classes" />
  <property name="javadoc.dir"                value="${build.dir}/javadoc"      />
  <property name="tests.reports"              value="${build.dir}/test-reports" />
  <property name="lib.dir"                    location="lib"                    />
  <property name="hipparchus.version"         value="2.0"                                            />
  <property name="hipparchus.core.jar"        value="hipparchus-core-${hipparchus.version}.jar"      />
  <property name="hipparchus.geometry.jar"    value="hipparchus-geometry-${hipparchus.version}.jar"  />
  <property name="hipparchus.ode.jar"         value="hipparchus-ode-${hipparchus.version}.jar"       />
  <property name="hipparchus.fitting.jar"     value="hipparchus-fitting-${hipparchus.version}.jar"   />
  <property name="hipparchus.optim.jar"       value="hipparchus-optim-${hipparchus.version}.jar"     />
  <property name="hipparchus.filtering.jar"   value="hipparchus-filtering-${hipparchus.version}.jar" />
  <property name="hipparchus.stat.jar"        value="hipparchus-stat-${hipparchus.version}.jar"      />
  <property name="hipparchus.maven.path"      value="org/hipparchus"                                 />
  <property name="junit.version"              value="4.13.2"                                         />
  <property name="junit.jar"                  value="junit-${junit.version}.jar"                     />
  <property name="junit.maven.path"           value="junit/junit"                                    />
  <property name="mockito.version"            value="3.12.4"                                         />
  <property name="mockito.jar"                value="mockito-core-${mockito.version}.jar"            />
  <property name="mockito.maven.path"         value="org/mockito/mockito-core"                       />
  <property name="bytebuddy.version"          value="1.9.10"                                         />
  <property name="bytebuddy.jar"              value="byte-buddy-${bytebuddy.version}.jar"            />
  <property name="bytebuddy.maven.path"       value="net/bytebuddy/byte-buddy"                       />
  <property name="bytebuddy.agent.jar"        value="byte-buddy-agent-${bytebuddy.version}.jar"      />
Evan Ward's avatar
Evan Ward committed
  <property name="bytebuddy.agent.maven.path" value="net/bytebuddy/byte-buddy-agent"               />
  <property name="objenesis.version"          value="2.6"                                            />
  <property name="objenesis.jar"              value="objenesis-${objenesis.version}.jar"             />
  <property name="objenesis.maven.path"       value="org/objenesis/objenesis"                        />
  <property name="hamcrest.version"           value="1.3"                                            />
  <property name="hamcrest.core.jar"          value="hamcrest-core-${hamcrest.version}.jar"          />
  <property name="hamcrest.maven.path"        value="org/hamcrest"                                   />
  <property name="maven.repository"           value="https://repo1.maven.org/maven2"                 />
  <property name="copyright"                  value="2002-2022 CS GROUP" />
  <available file="${lib.dir}/${hipparchus.core.jar}" property="libs.present" />
  <target name="clean" description="Clean the build directory">
    <delete dir="${build.dir}"/>
  </target>

  <target name="clean-lib" description="Clean the lib directory">
Luc Maisonobe's avatar
Luc Maisonobe committed
  </target>

  <target name="clean-all" depends="clean,clean-lib"
          description="Clean the build and lib directories">
  <target name="get-libs" description="Get libraries" unless="libs.present">
    <!-- if you need to set up a proxy to download artifacts,
         uncomment and edit the following setproxy task -->
    <!-- <setproxy proxyhost="my-proxy.my-company.com" proxyport="8080"
              proxyUser="username" proxyPassword="password"/> -->
    <mkdir dir="${lib.dir}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-core/${hipparchus.version}/${hipparchus.core.jar}"
         dest="${lib.dir}/${hipparchus.core.jar}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-geometry/${hipparchus.version}/${hipparchus.geometry.jar}"
         dest="${lib.dir}/${hipparchus.geometry.jar}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-ode/${hipparchus.version}/${hipparchus.ode.jar}"
         dest="${lib.dir}/${hipparchus.ode.jar}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-fitting/${hipparchus.version}/${hipparchus.fitting.jar}"
         dest="${lib.dir}/${hipparchus.fitting.jar}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-optim/${hipparchus.version}/${hipparchus.optim.jar}"
         dest="${lib.dir}/${hipparchus.optim.jar}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-filtering/${hipparchus.version}/${hipparchus.filtering.jar}"
         dest="${lib.dir}/${hipparchus.filtering.jar}"/>
    <get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-stat/${hipparchus.version}/${hipparchus.stat.jar}"
Luc Maisonobe's avatar
Luc Maisonobe committed
         dest="${lib.dir}/${hipparchus.stat.jar}"/>
    <get src="${maven.repository}/${junit.maven.path}/${junit.version}/${junit.jar}"
         dest="${lib.dir}/${junit.jar}"/>
    <get src="${maven.repository}/${hamcrest.maven.path}/hamcrest-core/${hamcrest.version}/${hamcrest.core.jar}"
         dest="${lib.dir}/${hamcrest.core.jar}"/>
Evan Ward's avatar
Evan Ward committed
    <get src="${maven.repository}/${mockito.maven.path}/${mockito.version}/${mockito.jar}"
         dest="${lib.dir}/${mockito.jar}"/>
    <get src="${maven.repository}/${bytebuddy.maven.path}/${bytebuddy.version}/${bytebuddy.jar}"
         dest="${lib.dir}/${bytebuddy.jar}"/>
    <get src="${maven.repository}/${bytebuddy.agent.maven.path}/${bytebuddy.version}/${bytebuddy.agent.jar}"
         dest="${lib.dir}/${bytebuddy.agent.jar}"/>
    <get src="${maven.repository}/${objenesis.maven.path}/${objenesis.version}/${objenesis.jar}"
         dest="${lib.dir}/${objenesis.jar}"/>
  <target name="compile" depends="get-libs" description="Compile the code">
    <mkdir dir="${main.classes.dir}"/>
    <javac srcdir="${main.src.dir}" destdir="${main.classes.dir}" includeantruntime="false"
Evan Ward's avatar
Evan Ward committed
           classpath="${lib.dir}/${hipparchus.core.jar}:${lib.dir}/${hipparchus.geometry.jar}:${lib.dir}/${hipparchus.ode.jar}:${lib.dir}/${hipparchus.fitting.jar}:${lib.dir}/${hipparchus.optim.jar}:${lib.dir}/${hipparchus.stat.jar}:${lib.dir}/${hipparchus.filtering.jar}"
           deprecation="true" target="1.8" source="1.8">
    </javac>
    <copy todir="${main.classes.dir}">
      <fileset dir="${main.resources.dir}"/>
    </copy>
  </target>

  <target name="compile-tests" depends="compile" description="Compile the test code" >
    <mkdir dir="${test.classes.dir}"/>
    <javac srcdir="${test.src.dir}" destdir="${test.classes.dir}" includeantruntime="false"
Evan Ward's avatar
Evan Ward committed
           classpath="${main.classes.dir}:${lib.dir}/${junit.jar}:${lib.dir}/${hamcrest.core.jar}:${lib.dir}/${hipparchus.core.jar}:${lib.dir}/${hipparchus.geometry.jar}:${lib.dir}/${hipparchus.ode.jar}:${lib.dir}/${hipparchus.fitting.jar}:${lib.dir}/${hipparchus.optim.jar}:${lib.dir}/${hipparchus.filtering.jar}:${lib.dir}/${hipparchus.stat.jar}:${lib.dir}/${mockito.jar}"
           deprecation="true" target="1.8" source="1.8">
    </javac>
    <copy todir="${test.classes.dir}">
      <fileset dir="${test.resources.dir}"/>
    </copy>
  </target>

  <target name="test" depends="compile-tests" description="Run the tests">
    <mkdir dir="${tests.reports}"/>
    <junit fork="yes" haltonerror="yes" haltonfailure="yes">
Luc Maisonobe's avatar
Luc Maisonobe committed
        <pathelement location="${main.classes.dir}"                   />
        <pathelement location="${test.classes.dir}"                   />
        <pathelement location="${lib.dir}/${hipparchus.core.jar}"     />
      	<pathelement location="${lib.dir}/${hipparchus.geometry.jar}" />
      	<pathelement location="${lib.dir}/${hipparchus.ode.jar}"      />
      	<pathelement location="${lib.dir}/${hipparchus.fitting.jar}"  />
      	<pathelement location="${lib.dir}/${hipparchus.optim.jar}"    />
      	<pathelement location="${lib.dir}/${hipparchus.stat.jar}"     />
      	<pathelement location="${lib.dir}/${junit.jar}"               />
      	<pathelement location="${lib.dir}/${hamcrest.core.jar}"       />
Evan Ward's avatar
Evan Ward committed
        <pathelement location="${lib.dir}/${hipparchus.filtering.jar}"/>
        <pathelement location="${lib.dir}/${mockito.jar}"             />
        <pathelement location="${lib.dir}/${objenesis.jar}"           />
        <pathelement location="${lib.dir}/${bytebuddy.jar}"           />
        <pathelement location="${lib.dir}/${bytebuddy.agent.jar}"     />
      <formatter type="plain" usefile="false"/>
      <batchtest todir="${tests.reports}">
        <fileset dir="${test.src.dir}">
          <include name="**/*Test.java"/>
          <exclude name="**/*Abstract*.java"/>
        </fileset>
      </batchtest>
    </junit>
  </target>

  <target name="jar" depends="compile,test" description="create the jar file">
    <jar jarfile="${build.dir}/${ant.project.name}-${project.version}.jar"
         basedir="${main.classes.dir}"/>
  </target>

  <target name="javadoc" description="create javadoc">
    <javadoc sourcepath="${main.src.dir}" destdir="${javadoc.dir}"
             overview="${main.src.dir}/org/orekit/overview.html"
             encoding="UTF-8" version="true" use="true" author="true"
             charset="UTF-8" docencoding="UTF-8"
             bottom="&lt;i&gt;Copyright &#169; ${copyright}. All Rights Reserved.&lt;/i&gt;">
      <link href="http://docs.oracle.com/javase/8/docs/api/"/>
Luc Maisonobe's avatar
Luc Maisonobe committed
      <link href="https://www.hipparchus.org/apidocs/"/>