<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 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.intent</groupId>
  <artifactId>org.eclipse.intent-parent</artifactId>
  <version>0.10.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Intent 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>
    <tycho-version>0.21.0</tycho-version>
    <tycho-extras-version>0.21.0</tycho-extras-version>
    <resource-encoding>UTF-8</resource-encoding>
    <maven-resources-version>2.6</maven-resources-version>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/intent/org.eclipse.mylyn.docs.intent.main.git</tycho.scmUrl>
  </properties>
  <scm>
    <developerConnection>scm:git:git://git.eclipse.org/gitroot/intent/org.eclipse.mylyn.docs.intent.main.git</developerConnection>
  </scm>
  <modules>
    <module>features/org.eclipse.intent.mapping.feature</module>
    <module>plugins/org.eclipse.intent.mapping</module>
    <module>tests/org.eclipse.intent.mapping.tests</module>
    <module>plugins/org.eclipse.intent.mapping.ide</module>
    <module>tests/org.eclipse.intent.mapping.ide.tests</module>
    <module>plugins/org.eclipse.intent.mapping.ide.ui</module>
    <!-- TODO <module>tests/org.eclipse.intent.mapping.ide.ui.tests</module> -->
    <module>plugins/org.eclipse.intent.mapping.emf</module>
    <module>tests/org.eclipse.intent.mapping.emf.tests</module>
    <module>plugins/org.eclipse.intent.mapping.emf.edit</module>
    <!-- TODO <module>tests/org.eclipse.intent.mapping.emf.edit.tests</module> -->
    <module>plugins/org.eclipse.intent.mapping.emf.ide</module>
    <module>tests/org.eclipse.intent.mapping.emf.ide.tests</module>
    <module>plugins/org.eclipse.intent.mapping.emf.ide.ui</module>

    <module>features/org.eclipse.intent.mapping.sirius.feature</module>
    <module>plugins/org.eclipse.intent.mapping.sirius.ide.ui</module>
  </modules>	

  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <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>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <includePackedArtifacts>true</includePackedArtifacts>
          <resolver>p2</resolver>
        </configuration>
      </plugin>
      <!-- enable source bundle generation -->
      <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>bash test and
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
          <excludes>
            <plugin id="org.apache.poi"/>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <id>source-feature</id>
            <phase>package</phase>
            <goals>
              <goal>source-feature</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-packaging-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
          <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>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <resolver>p2</resolver>
            <environments>
              <environment>
                <os>linux</os>
                <ws>gtk</ws>
                <arch>x86</arch>
              </environment>
              <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>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-compiler-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <encoding>UTF-8</encoding>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </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>1.3</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>2.3.2</version>
          <configuration>
            <findbugsXmlOutput>true</findbugsXmlOutput>
            <failOnError>false</failOnError>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>2.5</version>
          <configuration>
            <sourceEncoding>utf-8</sourceEncoding>
            <minimumTokens>100</minimumTokens>
            <targetJdk>1.8</targetJdk>
            <format>xml</format>
            <failOnViolation>false</failOnViolation>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>cpd-check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho-extras-version}</version>
          <executions>
            <execution>
              <id>p2-metadata</id>
              <goals>
                <goal>p2-metadata</goal>
              </goals>
              <phase>package</phase>
            </execution>
          </executions>
          <configuration>
            <defaultP2Metadata>false</defaultP2Metadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>updatesites</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>product</name>
          <value>true</value>
        </property>
      </activation>
      <modules>
        <!-- update sites -->
        <module>releng/org.eclipse.intent.updatesite</module>
      </modules>
    </profile>
    <profile>
      <id>product</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>product</name>
          <value>true</value>
        </property>
      </activation>
      <modules>
        <!-- product and product tests -->
        <module>features/org.eclipse.intent.product.feature</module>
        <module>releng/org.eclipse.intent.branding</module>
        <module>releng/org.eclipse.intent.product</module>
        <!-- TODO fixe RCPTT tests <module>tests/org.eclipse.intent.product.tests</module> -->
      </modules>
    </profile>
    <profile>
      <id>platform-oxygen</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>platform-version-name</name>
          <value>oxygen</value>
        </property>
      </activation>
      <properties>
        <eclipse-rcptt-inject-site>http://download.eclipse.org/releases/oxygen</eclipse-rcptt-inject-site>
      </properties>
      <modules>
        <module>releng/org.eclipse.intent.targetplatforms/oxygen</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.intent</groupId>
                  <artifactId>intent-oxygen</artifactId>
                  <version>0.10.0-SNAPSHOT</version>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>platform-neon</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>platform-version-name</name>
          <value>neon</value>
        </property>
      </activation>
      <properties>
        <eclipse-rcptt-inject-site>http://download.eclipse.org/releases/neon</eclipse-rcptt-inject-site>
      </properties>
      <modules>
        <module>releng/org.eclipse.intent.targetplatforms/neon</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.intent</groupId>
                  <artifactId>intent-neon</artifactId>
                  <version>0.10.0-SNAPSHOT</version>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>platform-mars</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>platform-version-name</name>
          <value>mars</value>
        </property>
      </activation>
      <properties>
        <eclipse-rcptt-inject-site>http://download.eclipse.org/releases/mars</eclipse-rcptt-inject-site>
      </properties>
      <modules>
        <module>releng/org.eclipse.intent.targetplatforms/mars</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.intent</groupId>
                  <artifactId>intent-mars</artifactId>
                  <version>0.10.0-SNAPSHOT</version>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>platform-luna</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>platform-version-name</name>
          <value>luna</value>
        </property>
      </activation>
      <properties>
        <eclipse-rcptt-inject-site>http://download.eclipse.org/releases/luna</eclipse-rcptt-inject-site>
      </properties>
      <modules>
        <module>releng/org.eclipse.intent.targetplatforms/luna</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
              <target>
                <artifact>
                  <groupId>org.eclipse.intent</groupId>
                  <artifactId>intent-luna</artifactId>
                  <version>0.10.0-SNAPSHOT</version>
                </artifact>
              </target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>checkstyle</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.11</version>
            <executions>
              <execution>
                <id>check my sources</id>
                <goals>
                  <goal>checkstyle</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <configLocation>${project.parent.relativePath}/releng/org.eclipse.intent.codestyle/codestyle/IntentCheckstyle6Configuration.xml</configLocation>
                  <failOnErrors>false</failOnErrors>
                  <consoleOutput>true</consoleOutput>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>static-checks</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.3</version>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.0.1</version>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>macosx-jvm-flags</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
      </properties>
    </profile>
  </profiles>
</project>
