<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apfloat</groupId>
    <artifactId>apfloat-parent</artifactId>
    <version>1.16.0-SNAPSHOT</version>
  </parent>

  <artifactId>apfloat-tools</artifactId>

  <name>apfloat</name>
  <description>Tools for generating apfloat constants</description>
  <url>https://www.apfloat.org</url>

  <properties>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apfloat</groupId>
      <artifactId>apfloat</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <macrodef name="copy-template">
                  <attribute name="fromdir" />
                  <attribute name="todir" />
                  <attribute name="primitivetype" />
                  <attribute name="shortobjecttype" />
                  <attribute name="longobjecttype" />
                  <sequential>
                    <copy todir="@{todir}">
                      <fileset dir="@{fromdir}" />
                      <mapper type="regexp" from="(.*)Rawtype(.*)" to="\1@{shortobjecttype}\2" />
                      <filterchain>
                        <tokenfilter>
                          <replacestring from="rawtype" to="@{primitivetype}" />
                          <replacestring from="Rawtype" to="@{shortobjecttype}" />
                          <replacestring from="RawType" to="@{longobjecttype}" />
                        </tokenfilter>
                        <expandproperties />
                      </filterchain>
                    </copy>
                  </sequential>
                </macrodef>
                <macrodef name="copy-templates">
                  <attribute name="fromdir" />
                  <attribute name="todir"/>
                  <sequential>
                    <copy-template fromdir="@{fromdir}" todir="@{todir}" primitivetype="int" shortobjecttype="Int" longobjecttype="Integer" />
                    <copy-template fromdir="@{fromdir}" todir="@{todir}" primitivetype="long" shortobjecttype="Long" longobjecttype="Long" />
                    <copy-template fromdir="@{fromdir}" todir="@{todir}" primitivetype="float" shortobjecttype="Float" longobjecttype="Float" />
                    <copy-template fromdir="@{fromdir}" todir="@{todir}" primitivetype="double" shortobjecttype="Double" longobjecttype="Double" />
                  </sequential>
                </macrodef>
                <copy-templates fromdir="src/main/template" todir="${project.build.directory}/generated-sources/main" />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>target/generated-sources/main</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
