<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, Red Hat, Inc.

   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html
-->

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <prerequisites>
    <maven>3.0</maven>
  </prerequisites>

  <groupId>org.eclipse.tracecompass</groupId>
  <artifactId>org.eclipse.tracecompass</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Trace Compass Parent</name>

  <licenses>
    <license>
      <name>Eclipse Public License v1.0</name>
      <comments>
       All rights reserved.

       This program and the accompanying materials are made
       available under the terms of the Eclipse Public License v1.0
       which accompanies this distribution, and is available at
       http://www.eclipse.org/legal/epl-v10.htm
      </comments>
    </license>
  </licenses>

<properties>
  <base.test.vmargs>-Xms256m -Xmx1024m -XX:MaxPermSize=256m</base.test.vmargs>
  <tycho-version>0.22.0</tycho-version>
  <tycho-extras-version>0.22.0</tycho-extras-version>
  <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/tracecompass/org.eclipse.tracecompass.git</tycho.scmUrl>
  <target-platform>tracecompass-e4.4</target-platform>
  <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
  <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
  <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
  <sonar.java.source>1.7</sonar.java.source>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<pluginRepositories>
  <pluginRepository>
    <id>repo.eclipse.org</id>
    <url>https://repo.eclipse.org/content/groups/releases/</url>
  </pluginRepository>
  <pluginRepository>
    <id>tycho-snapshots</id>
    <url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
  </pluginRepository>
  <pluginRepository>
    <id>jboss-public-repository-group</id>
    <name>JBoss Public Repository Group</name>
    <url>http://repository.jboss.org/nexus/content/groups/public/</url>
  </pluginRepository>
</pluginRepositories>

<profiles>
  <profile>
    <id>build-rcp</id>
      <modules>
        <module>org.eclipse.tracecompass.rcp.product</module>
      </modules>
  </profile>
  <profile>
    <id>sign-update-site</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.eclipse.cbi.maven.plugins</groupId>
          <artifactId>eclipse-jarsigner-plugin</artifactId>
          <version>1.1.1</version>
          <executions>
            <execution>
              <id>sign</id>
              <phase>install</phase>
              <goals>
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
  </profile>
  <profile>
    <id>performance</id>
    <modules>
      <module>org.eclipse.tracecompass.alltests</module>
    </modules>
  </profile>
  <profile>
    <id>macosx</id>
    <activation>
      <os>
        <family>mac</family>
      </os>
    </activation>
    <properties>
      <base.ui.test.vmargs>${base.test.vmargs} -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</base.ui.test.vmargs>
    </properties>
  </profile>
  <profile>
    <id>not-macosx</id>
    <activation>
      <os>
        <family>!mac</family>
      </os>
    </activation>
    <properties>
      <!-- Disable webkit integration, especially unstable on Linux -->
      <base.ui.test.vmargs>${base.test.vmargs} -Dorg.eclipse.swt.browser.DefaultType=mozilla</base.ui.test.vmargs>
    </properties>
  </profile>
</profiles>

  <modules>
    <module>doc</module>

    <module>org.eclipse.tracecompass.common.core</module>

    <module>org.eclipse.tracecompass.btf</module>
    <module>org.eclipse.tracecompass.btf.core</module>
    <module>org.eclipse.tracecompass.btf.core.tests</module>
    <module>org.eclipse.tracecompass.btf.ui</module>

    <module>org.eclipse.tracecompass.ctf</module>
    <module>org.eclipse.tracecompass.ctf.core</module>
    <module>org.eclipse.tracecompass.ctf.core.tests</module>
    <module>org.eclipse.tracecompass.ctf.parser</module>
    <module>org.eclipse.tracecompass.ctf.parser.tests</module>

    <module>org.eclipse.tracecompass.pcap.core</module>
    <module>org.eclipse.tracecompass.pcap.core.tests</module>

    <module>org.eclipse.tracecompass.statesystem.core</module>
    <module>org.eclipse.tracecompass.statesystem.core.tests</module>

    <module>org.eclipse.tracecompass.tmf</module>
    <module>org.eclipse.tracecompass.tmf.core</module>
    <module>org.eclipse.tracecompass.tmf.core.tests</module>
    <module>org.eclipse.tracecompass.tmf.ui</module>
    <module>org.eclipse.tracecompass.tmf.ui.tests</module>
    <module>org.eclipse.tracecompass.tmf.ui.swtbot.tests</module>

    <module>org.eclipse.tracecompass.tmf.ctf</module>
    <module>org.eclipse.tracecompass.tmf.ctf.core</module>
    <module>org.eclipse.tracecompass.tmf.ctf.core.tests</module>
    <module>org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests</module>

    <module>org.eclipse.tracecompass.tmf.pcap</module>
    <module>org.eclipse.tracecompass.tmf.pcap.core</module>
    <module>org.eclipse.tracecompass.tmf.pcap.core.tests</module>
    <module>org.eclipse.tracecompass.tmf.pcap.ui</module>
    <module>org.eclipse.tracecompass.tmf.pcap.ui.swtbot.tests</module>

    <module>org.eclipse.tracecompass.tmf.analysis.xml.core</module>
    <module>org.eclipse.tracecompass.tmf.analysis.xml.core.tests</module>
    <module>org.eclipse.tracecompass.tmf.analysis.xml.ui</module>
    <module>org.eclipse.tracecompass.tmf.analysis.xml.ui.tests</module>

    <module>org.eclipse.tracecompass.releng-site</module>
    <module>org.eclipse.tracecompass.target</module>
    <module>org.eclipse.tracecompass.testing</module>

    <module>org.eclipse.tracecompass.analysis.os.linux.core</module>
    <module>org.eclipse.tracecompass.analysis.os.linux.core.tests</module>
    <module>org.eclipse.tracecompass.analysis.os.linux.ui</module>

    <module>org.eclipse.tracecompass.lttng2.control</module>
    <module>org.eclipse.tracecompass.lttng2.control.core</module>
    <module>org.eclipse.tracecompass.lttng2.control.core.tests</module>
    <module>org.eclipse.tracecompass.lttng2.control.ui</module>
    <module>org.eclipse.tracecompass.lttng2.control.ui.tests</module>

    <module>org.eclipse.tracecompass.lttng2.kernel</module>
    <module>org.eclipse.tracecompass.lttng2.kernel.core</module>
    <module>org.eclipse.tracecompass.lttng2.kernel.core.tests</module>
    <module>org.eclipse.tracecompass.lttng2.kernel.ui</module>
    <module>org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests</module>

    <module>org.eclipse.tracecompass.lttng2.ust</module>
    <module>org.eclipse.tracecompass.lttng2.ust.core</module>
    <module>org.eclipse.tracecompass.lttng2.ust.core.tests</module>
    <module>org.eclipse.tracecompass.lttng2.ust.ui</module>
    <module>org.eclipse.tracecompass.lttng2.ust.ui.tests</module>

    <module>org.eclipse.tracecompass.gdbtrace</module>
    <module>org.eclipse.tracecompass.gdbtrace.core</module>
    <module>org.eclipse.tracecompass.gdbtrace.core.tests</module>
    <module>org.eclipse.tracecompass.gdbtrace.ui</module>
    <module>org.eclipse.tracecompass.gdbtrace.ui.tests</module>

    <module>org.eclipse.tracecompass.rcp.branding</module>
    <module>org.eclipse.tracecompass.rcp.branding.feature</module>
    <module>org.eclipse.tracecompass.rcp</module>
    <module>org.eclipse.tracecompass.rcp.ui</module>

    <module>org.eclipse.tracecompass.examples</module>
  </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <environments>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>macosx</os>
                            <ws>cocoa</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                    <target>
                      <artifact>
                        <groupId>org.eclipse.tracecompass</groupId>
                        <artifactId>org.eclipse.tracecompass.target</artifactId>
                        <classifier>${target-platform}</classifier>
                        <version>1.0.0</version>
                      </artifact>
                    </target>
                    <filters>
                      <filter>
                        <type>eclipse-plugin</type>
                        <id>org.eclipse.jdt.annotation</id>
                        <restrictTo>
                          <versionRange>[1.0,2.0)</versionRange>
                        </restrictTo>
                      </filter>
                    </filters>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho-version}</version>
                <extensions>true</extensions>
            </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-source-plugin</artifactId>
          <version>${tycho-version}</version>
          <executions>
            <execution>
              <id>plugin-source</id>
              <goals>
                <goal>plugin-source</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-source-feature-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <includeBinaryFeature>false</includeBinaryFeature>
          </configuration>
          <executions>
            <execution>
              <id>source-feature</id>
              <phase>package</phase>
              <goals>
                <goal>source-feature</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.7.2.201409121644</version>
          <executions>
            <execution>
             <id>pre-test</id>
             <goals>
               <goal>prepare-agent</goal>
             </goals>
             <configuration>
                <!-- Where to put jacoco coverage report -->
                <destFile>${sonar.jacoco.reportPath}</destFile>
                <includes>
                  <include>org.eclipse.tracecompass.*</include>
                </includes>
                <append>true</append>
              </configuration>
            </execution>
            <execution>
              <id>post-test</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>report</goal>
              </goals>
              <configuration>
                <dataFile>${sonar.jacoco.reportPath}</dataFile>
              </configuration>
            </execution>
          </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <encoding>UTF-8</encoding>
            <useProjectSettings>true</useProjectSettings>
          </configuration>
	 </plugin>
	<plugin>
	  <groupId>org.eclipse.tycho</groupId>
	  <artifactId>tycho-surefire-plugin</artifactId>
	  <version>${tycho-version}</version>
	  <configuration>
	    <useUIHarness>true</useUIHarness>
	    <useUIThread>true</useUIThread>
            <dependencies>
               <dependency>
                 <type>p2-installable-unit</type>
                 <artifactId>org.eclipse.platform.feature.group</artifactId>
                 <version>${sdk-version}</version>
               </dependency>
            </dependencies>
            <product>org.eclipse.platform.ide</product>
 	    <argLine>${tycho.testArgLine} -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine>
	  </configuration>
	</plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-versions-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho-extras-version}</version>
            </dependency>
          </dependencies>
        </plugin>
	<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.6</version>
          <configuration>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.9.1</version>
          <configuration>
            <excludePackageNames>org.eclipse.tracecompass.internal.*:*.test*</excludePackageNames>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jboss.tools.tycho-plugins</groupId>
          <artifactId>repository-utils</artifactId>
          <version>0.22.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

</project>
