<?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.9-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.9-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>
        <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-06</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-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-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>
