<?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>cpp-build</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Libphonenumber C++ build tools</name>
  <description>
    C++ build tools that download dependencies under base/ from the Chromium source repository, and
    generate the C++ metadata code needed to build the libphonenumber library.
  </description>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
          <source>1.7</source>
	  <target>1.7</target>
	  <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <!-- Create a directory called 'generated'. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.3</version>
        <executions>
          <execution>
            <id>create-generated-directory</id>
            <phase>generate-sources</phase>
            <configuration>
              <tasks>
                <mkdir dir="generated"/>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.4.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <!-- Make BuildMetadataFromXml.java available to the source directories. -->
                <source>../common/src/</source>
                <!-- Make Phonemetadata.java available to the source directories.
                     BuildMetadataFromXml.java has to work with both
                     tools/java/cpp-build/generated/com/google/i18n/phonenumbers/Phonemetadata.java
                     and java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java.
                     TODO: This Phonemetadata.java is generated via a protoc dependency that is not
                     hermetic and may get out of sync with the other one. Make this file hermetic or
                     find another way to enable Travis CI on this build. -->
                <source>generated/</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- Invoke Protocol Buffers compiler to generate Phonemetadata.java. -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <executable>protoc</executable>
          <arguments>
            <argument>--java_out=generated</argument>
            <argument>../../../resources/phonemetadata.proto</argument>
            <argument>--proto_path=../../../resources</argument>
          </arguments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.google.i18n.phonenumbers.EntryPoint</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <!-- Build a JAR with its dependencies (protocol buffers and common library). This JAR
           contains the C++ build tools invoked by CMake during the libphonenumber C++ build. -->
      <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>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>3.25.5</version>
    </dependency>
  </dependencies>

</project>
