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

  <parent>
    <artifactId>tools</artifactId>
    <groupId>com.google.i18n.phonenumbers</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <groupId>com.google.i18n.phonenumbers.tools</groupId>
  <artifactId>java-build</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Libphonenumber Java and JavaScript build tools</name>
  <description>
    Java and JavaScript build tools that generate the Java and JavaScript metadata code needed to
    build the libphonenumber library. The Java build tools also transform the geocoding data from
    text to binary format.
  </description>

  <properties>
    <phonenumberutil.resources.dir>
      ${project.dir}/../../../../java/libphonenumber/src/
    </phonenumberutil.resources.dir>
  </properties>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <!-- Include the PhoneNumberUtil metadata files. -->
    <resources>
      <resource>
        <directory>${phonenumberutil.resources.dir}</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>${phonenumberutil.resources.dir}</directory>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <!-- Add ../../../java/libphonenumber/src/ to make Phonemetadata.java available to
                     the source directories. -->
                <source>../../../java/libphonenumber/src/</source>
                <!-- Add ../../../java/internal/phoneprefix/src/ to make PhonePrefixMap.java
                     available to the source directories. -->
                <source>../../../java/internal/prefixmapper/src/</source>
                <!-- Add ../common/src/ which contains BuildMetadataFromXml.java -->
                <source>../common/src/</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- Build a JAR that contains the Java and JavaScript build tools. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.google.i18n.phonenumbers.EntryPoint</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <repositories>
    <repository>
      <id>protobuf-java-lib</id>
      <url>file://${project.basedir}/../../../java/lib</url>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>2.6.1</version>
    </dependency>
  </dependencies>

</project>
