<?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>ml.dmlc.tvm</groupId>
    <artifactId>tvm4j-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <groupId>ml.dmlc.tvm</groupId>
  <artifactId>tvm4j-core</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>TVM4J Package - Core</name>

  <profiles>
    <profile>
      <id>osx-x86_64</id>
      <properties>
        <platform>osx-x86_64</platform>
        <libtvm.so.filename>libtvm_runtime.dylib</libtvm.so.filename>
      </properties>
    </profile>
    <profile>
      <id>linux-x86_64</id>
      <properties>
        <platform>linux-x86_64</platform>
        <libtvm.so.filename>libtvm_runtime.so</libtvm.so.filename>
      </properties>
    </profile>
  </profiles>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>META-INF/*.SF</exclude>
            <exclude>META-INF/*.DSA</exclude>
            <exclude>META-INF/*.RSA</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>6.12</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <phase>process-sources</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <failsOnError>true</failsOnError>
          <configLocation>${project.parent.basedir}/conf/google_checks.xml</configLocation>
          <consoleOutput>true</consoleOutput>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <forkCount>1</forkCount>
          <reuseForks>true</reuseForks>
          <threadCount>1</threadCount>
          <argLine>
            -Djava.library.path=${project.parent.basedir}/native/${platform}/target
            -Dlibtvm.so.path=${project.parent.basedir}/../build/${libtvm.so.filename}
            -Dlog4j.configuration=file://${project.parent.basedir}/conf/log4j.properties
          </argLine>
        </configuration>
        <executions>
          <execution>
            <id>test</id>
            <!--
             We put it in the integration-test phase,
             because the test suites require the jni library,
             which means, in order to run the unit tests,
             we have to compile all the modules first.
            -->
            <phase>integration-test</phase>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.25</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
