<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2007, 2013 THALES GLOBAL SERVICES
  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

  Contributors:
       Obeo - Initial API and implementation
-->
<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.sirius</groupId>
  <artifactId>sirius-parent</artifactId>
  <version>1.0.2-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Sirius 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.20.0</tycho-version>
    <tycho-extras-version>0.20.0</tycho-extras-version>
    <platform-version-name>kepler</platform-version-name>
    <tycho.scmUrl>scm:git:http://git.eclipse.org/gitroot/sirius/org.eclipse.sirius.git</tycho.scmUrl>
  </properties>

  <modules>
    <!-- plugins -->
    <module>../../plugins/org.eclipse.sirius.ext.base</module>
    <module>../../plugins/org.eclipse.sirius.ext.draw2d</module>
    <module>../../plugins/org.eclipse.sirius.ext.e3.ui</module>
    <module>../../plugins/org.eclipse.sirius.ext.e3</module>
    <module>../../plugins/org.eclipse.sirius.ext.emf.edit</module>
    <module>../../plugins/org.eclipse.sirius.ext.emf.tx</module>
    <module>../../plugins/org.eclipse.sirius.ext.emf.ui</module>
    <module>../../plugins/org.eclipse.sirius.ext.emf</module>
    <module>../../plugins/org.eclipse.sirius.ext.gef</module>
    <module>../../plugins/org.eclipse.sirius.ext.gmf.notation</module>
    <module>../../plugins/org.eclipse.sirius.ext.gmf.runtime</module>
    <module>../../plugins/org.eclipse.sirius.ext.jface</module>
    <module>../../plugins/org.eclipse.sirius.ext.swt</module>

    <module>../../plugins/org.eclipse.sirius.common.acceleo.mtl.ide</module>
    <module>../../plugins/org.eclipse.sirius.common.acceleo.mtl</module>
    <module>../../plugins/org.eclipse.sirius.common.ocl</module>
    <module>../../plugins/org.eclipse.sirius.common.ui</module>
    <module>../../plugins/org.eclipse.sirius.common.xtext</module>
    <module>../../plugins/org.eclipse.sirius.common</module>
    <module>../../plugins/org.eclipse.sirius.diagram.layoutdata</module>
    <module>../../plugins/org.eclipse.sirius.diagram.sequence.edit</module>
    <module>../../plugins/org.eclipse.sirius.diagram.sequence.ui</module>
    <module>../../plugins/org.eclipse.sirius.diagram.sequence</module>
    <module>../../plugins/org.eclipse.sirius.diagram</module>
    <module>../../plugins/org.eclipse.sirius.diagram.ui</module>
    <module>../../plugins/org.eclipse.sirius.doc</module>
    <module>../../plugins/org.eclipse.sirius.ecore.extender</module>
    <module>../../plugins/org.eclipse.sirius.editor.diagram</module>
    <module>../../plugins/org.eclipse.sirius.editor.sequence</module>
    <module>../../plugins/org.eclipse.sirius.editor.table</module>
    <module>../../plugins/org.eclipse.sirius.editor.tree</module>
    <module>../../plugins/org.eclipse.sirius.editor</module>
    <module>../../plugins/org.eclipse.sirius.eef.adapters</module>
    <module>../../plugins/org.eclipse.sirius.interpreter</module>
    <module>../../plugins/org.eclipse.sirius.sample.ecore.design</module>
    <module>../../plugins/org.eclipse.sirius.synchronizer</module>
    <module>../../plugins/org.eclipse.sirius.table.ui</module>
    <module>../../plugins/org.eclipse.sirius.table</module>
    <module>../../plugins/org.eclipse.sirius.tree.ui</module>
    <module>../../plugins/org.eclipse.sirius.tree</module>
    <module>../../plugins/org.eclipse.sirius.ui</module>
    <module>../../plugins/org.eclipse.sirius</module>
    <module>../../plugins/org.eclipse.sirius.tests.support</module>
    <module>../../plugins/org.eclipse.sirius.tests.swtbot.support</module>

    <!-- features -->
    <module>../../packaging/org.eclipse.sirius.doc.feature</module>
    <module>../../packaging/org.eclipse.sirius.runtime.acceleo</module>
    <module>../../packaging/org.eclipse.sirius.runtime.ide.eef</module>
    <module>../../packaging/org.eclipse.sirius.runtime.ide.ui.acceleo</module>
    <module>../../packaging/org.eclipse.sirius.runtime.ide.ui</module>
    <module>../../packaging/org.eclipse.sirius.runtime.ide.xtext</module>
    <module>../../packaging/org.eclipse.sirius.runtime.ocl</module>
    <module>../../packaging/org.eclipse.sirius.runtime</module>
    <module>../../packaging/org.eclipse.sirius.samples</module>
    <module>../../packaging/org.eclipse.sirius.specifier.ide.ui.acceleo</module>
    <module>../../packaging/org.eclipse.sirius.specifier.ide.ui</module>
    <module>../../packaging/org.eclipse.sirius.tests</module>

    <!-- update sites -->
    <module>../../packaging/org.eclipse.sirius.update</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>
          <dependency-resolution>
            <optionalDependencies>ignore</optionalDependencies>
          </dependency-resolution>
          <target>
            <artifact>
              <groupId>org.eclipse.sirius</groupId>
              <artifactId>sirius-parent</artifactId>
              <version>1.0.2-SNAPSHOT</version>
              <classifier>../../releng/org.eclipse.sirius.targets/sirius_${platform-version-name}</classifier>
            </artifact>
          </target>
        </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</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.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>target-platform-configuration</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <environments>
              <environment>
                <os>linux</os>
                <ws>gtk</ws>
                <arch>x86</arch>
              </environment>
              <environment>
                <os>linux</os>
                <ws>gtk</ws>
                <arch>x86_64</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>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>
<!--
     Disabled for build performance reasons: the current code and rules produce thousands of warnings which take a
     significant amount of time to output during the build. We already have the information in our Eclipse worbenches.
             <compilerArguments>
              <properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
            </compilerArguments>
 -->
           </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.4.1</version>
          <configuration>
            <encoding>ISO-8859-1</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.3</version>
        </plugin>
        <!-- Exclude pom.xml and pom.properties from generated archive (see http://maven.apache.org/shared/maven-archiver/) -->
        <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>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>sign</id>
      <activation>
        <property>
          <name>BUILD_SIGN</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-extras-version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <phase>package</phase>
                <goals>
                  <goal>normalize</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>1.0.4</version>
            <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>
            <version>${tycho-extras-version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <phase>package</phase>
                <goals>
                  <goal>pack</goal>
                </goals>
              </execution>
            </executions>
          </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>
    </profiles>
</project>
