<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, 2015 Obeo

   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.emf.compare</groupId>
  <artifactId>emf.compare-parent</artifactId>
  <version>3.3.10-SNAPSHOT</version>
  <packaging>pom</packaging>
  <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>
    <!-- Properties -->
    <parent-version>3.3.10-SNAPSHOT</parent-version>
    <source-java-version>1.7</source-java-version>
    <target-java-version>${source-java-version}</target-java-version>
    <java-source-encoding>UTF-8</java-source-encoding>
    <resource-encoding>UTF-8</resource-encoding>
    <os-jvm-flags/>

    <!-- plugins versions -->
    <!-- use 'mvn versions:display-plugin-updates' to check for the latest -->
    <tycho-version>1.4.0</tycho-version>
    <tycho-extras-version>1.4.0</tycho-extras-version>
    <maven-resources-version>2.6</maven-resources-version>
    <maven-antrun-version>1.7</maven-antrun-version>
    <findbugs-maven-version>3.0.0</findbugs-maven-version>
    <maven-pmd-version>3.1</maven-pmd-version>
    <exec-maven-version>1.3.1</exec-maven-version>
    <maven-compiler-version>3.1</maven-compiler-version>
    <maven-assembly-version>2.4</maven-assembly-version>
    <maven-jar-version>2.5</maven-jar-version>
    <maven-checkstyle-version>2.12.1</maven-checkstyle-version>
    <maven-clean-version>2.5</maven-clean-version>
    <maven-deploy-version>2.8.1</maven-deploy-version>
    <maven-install-version>2.5.1</maven-install-version>
    <maven-site-version>3.4</maven-site-version>
    <maven-surefire-version>2.17</maven-surefire-version>
    <jacoco-maven-version>0.7.1.201405082137</jacoco-maven-version>
    <eclipse-jarsigner-version>1.1.2</eclipse-jarsigner-version>
    <maven-jxr-version>2.3</maven-jxr-version>

    <!-- Sonar properties -->
    <sonar.language>java</sonar.language>
    <sonar.jacoco.reportPath>${project.basedir}/../../org.eclipse.emf.compare-parent/target/jacoco.exec</sonar.jacoco.reportPath>
    <!--sonar.junit.reportsPath>../${project.artifactId}.tests/target/surefire-reports/</sonar.junit.reportsPath>
    <sonar.skippedModules>plugin.tests</sonar.skippedModules-->

    <!-- Performance plugin properties -->
    <performance-suite>Performance</performance-suite>
  </properties>
  <!--
    Platform-specific modules will be activated from the related profiles.
    Here, we only define those modules that should build against every target platform.
  -->
  <modules>
    <!-- This one must remain the first module in the list -->
    <module>../packaging/org.eclipse.emf.compare.gendoc</module>
    
    <module>../packaging/org.eclipse.emf.compare.update</module>
    
    <module>../packaging/org.eclipse.emf.compare-feature</module>
    <module>../plugins/org.eclipse.emf.compare</module>
    <module>../plugins/org.eclipse.emf.compare.tests</module>
    <module>../plugins/org.eclipse.emf.compare.doc</module>
    
    <module>../packaging/org.eclipse.emf.compare.ide.ui-feature</module>
    <module>../plugins/org.eclipse.emf.compare.edit</module>
    <module>../plugins/org.eclipse.emf.compare.ide</module>
    <module>../plugins/org.eclipse.emf.compare.ide.ui</module>
    <module>../plugins/org.eclipse.emf.compare.ide.ui.e4</module>
    <module>../plugins/org.eclipse.emf.compare.ide.ui.tests</module>
    <module>../plugins/org.eclipse.emf.compare.ide.ui.tests.framework</module>
    <module>../plugins/org.eclipse.emf.compare.ide.ui.tests.git</module>
    <module>../plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework</module>
    <module>../plugins/org.eclipse.emf.compare.ide.tests</module>

    <module>../packaging/org.eclipse.emf.compare.rcp.ui-feature</module>
    <module>../plugins/org.eclipse.emf.compare.rcp</module>
    <module>../plugins/org.eclipse.emf.compare.rcp.tests</module>
    <module>../plugins/org.eclipse.emf.compare.rcp.ui</module>
    <module>../plugins/org.eclipse.emf.compare.rcp.ui.tests</module>
    
    <module>../packaging/org.eclipse.emf.compare.egit-feature</module>
    <module>../plugins/org.eclipse.emf.compare.egit</module>
    <module>../plugins/org.eclipse.emf.compare.egit.ui</module>
    
    <module>../packaging/org.eclipse.emf.compare.uml2-feature</module>
    <module>../plugins/org.eclipse.emf.compare.uml2</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.edit</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.ide</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.ide.ui.tests</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.ide.tests</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.rcp</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.rcp.ui</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.rcp.ui.tests</module>
    <module>../plugins/org.eclipse.emf.compare.uml2.tests</module>
    
    <module>../packaging/org.eclipse.emf.compare.diagram.gmf-feature</module>
    <module>../plugins/org.eclipse.emf.compare.diagram</module>
    <module>../plugins/org.eclipse.emf.compare.diagram.edit</module>
    <module>../plugins/org.eclipse.emf.compare.diagram.ide.ui</module>
    
    <module>../packaging/org.eclipse.emf.compare.tests-feature</module>
  </modules>

  <build>
   <!-- This is for checkstyle and PMD -->
   <sourceDirectory>src</sourceDirectory>

    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <includePackedArtifacts>true</includePackedArtifacts>
          <resolver>p2</resolver>
          <environments>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>macosx</os>
              <ws>cocoa</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <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-extras-version}</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>source-feature</id>
            <phase>package</phase>
            <goals>
              <goal>source-feature</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-maven-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <encoding>${java-source-encoding}</encoding>
            <source>${source-java-version}</source>
            <target>${target-java-version}</target>
            <showWarnings>true</showWarnings>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-surefire-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <argLine>${tycho.testArgLine} -Xms40m -Xmx1G ${os-jvm-flags}</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-publisher-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-repository-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-extras-version}</version>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho-extras-version}</version>
        </plugin>
        <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${eclipse-jarsigner-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-version}</version>
          <configuration>
            <encoding>${resource-encoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven-antrun-version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${maven-pmd-version}</version>
          <configuration>
            <sourceEncoding>${java-source-encoding}</sourceEncoding>
            <targetJdk>${target-java-version}</targetJdk>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-version}</version>
          <configuration>
            <encoding>${java-source-encoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${exec-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-version}</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven-clean-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven-install-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven-site-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${maven-jxr-version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <!-- Target platforms are located in org.eclipse.emf.compare-parent/targetPlatforms. -->
    <profile>
      <id>2019-12</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/2019-12-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>2019-06</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/2019-06-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>oxygen</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/oxygen-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>neon</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/neon-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>mars</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/mars-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>luna</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/luna-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!--
        The "extras" profiles can be used to build the supports for external tools such as Sirius.
        You will need to activate both the "extra-modules" profile and one of the "<platform_name>-extras" profiles.
    -->
    <profile>
      <id>extra-modules</id>
      <modules>
        <module>../packaging/org.eclipse.emf.compare.update.extras</module>
        
        <module>../packaging/org.eclipse.emf.compare.diagram.sirius-feature</module>
        <module>../plugins/org.eclipse.emf.compare.diagram.sirius</module>
        <module>../plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius</module>
      </modules>
    </profile>
    <profile>
      <id>2019-12-extras</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/extras/2019-12-extras-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>2019-06-extras</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/extras/2019-06-extras-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>oxygen-extras</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/extras/oxygen-extras-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <profile>
      <id>sign</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <executions>
              <execution>
                <id>sign</id>
                <phase>package</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <executions>
              <execution>
                <id>p2-metadata</id>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <pluginRepositories>
        <pluginRepository>
          <id>cbi</id>
          <url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <!-- use this profile if you need to launch sonar or other quality-related plugins on the built artifacts. -->
    <profile>
      <id>quality</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
              <execution>
                <id>checkstyle</id>
                <phase>verify</phase>
                <goals>
                  <goal>checkstyle</goal>
                </goals>
                <configuration>
                  <configLocation>${project.basedir}/../../org.eclipse.emf.compare-parent/codeStyle/EMFCompareCheckstyle5Configuration.xml</configLocation>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <configuration>
              <xmlOutput>true</xmlOutput>
              <failOnError>false</failOnError>
            </configuration>
            <executions>
              <execution>
                <id>findbugs</id>
                <phase>verify</phase>
                <goals>
                  <goal>findbugs</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <executions>
              <execution>
                <id>pmd-cpd</id>
                <phase>verify</phase>
                <goals>
                  <goal>pmd</goal>
                  <goal>cpd</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
          </plugin>
        </plugins>
      </reporting>
    </profile>
    <!-- use this profile to test performance of EMF Compare -->
    <profile>
      <id>performance</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <performance-suite>Performance</performance-suite>
      </properties>
      <modules>
        <module>../performance/org.eclipse.emf.compare.tests.performance</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/mars-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- use this profile to test performance of EMF Compare with large models -->
    <profile>
      <id>performance-large</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <performance-suite>PerformanceLarge</performance-suite>
      </properties>
      <modules>
        <module>../performance/org.eclipse.emf.compare.tests.performance</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/mars-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- use this profile to test performance of EMF Compare with models shared with git-->
    <profile>
      <id>performance-git</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <performance-suite>PerformanceGit</performance-suite>
      </properties>
      <modules>
        <module>../performance/org.eclipse.emf.compare.tests.performance</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/mars-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- use this profile to test performance of EMF Compare with large models shared with git-->
    <profile>
      <id>performance-large-git</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <performance-suite>PerformanceLargeGit</performance-suite>
      </properties>
      <modules>
        <module>../performance/org.eclipse.emf.compare.tests.performance</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.emf.compare</groupId>
                  <artifactId>emf.compare-parent</artifactId>
                  <version>${parent-version}</version>
                  <classifier>targetPlatforms/mars-sdk</classifier>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- this profile will activate by itself if the build is ran on a mac. Be carefull to also activate a profile -->
    <profile>
      <id>macosx-jvm-flags</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
      </properties>
    </profile>
    <!-- This profile is activated when the code.coverage property is not set.
    Another profile is defined in test-parent where jacoco is triggerred and will set testArgLine to
    its desired value. -->
    <profile>
      <id>no.code.coverage</id>
      <activation>
        <property>
          <name>!code.coverage</name>
        </property>
      </activation>
      <properties>
        <tycho.testArgLine/>
      </properties>
    </profile>
  </profiles>
</project>
