<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2014 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Igor Fedorenko - initial 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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>eclipse.platform.releng</groupId>
    <artifactId>eclipse.platform.releng</artifactId>
    <version>4.10.0-SNAPSHOT</version>
    <relativePath>../../</relativePath>
  </parent>
  <groupId>org.eclipse.platform.feature</groupId>
  <artifactId>org.eclipse.platform</artifactId>
  <version>4.10.0-SNAPSHOT</version>
  <packaging>eclipse-feature</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <dependency-resolution>
            <extraRequirements>
              <!-- this guarantees proper reactor build order  -->
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.platform.doc.isv</id>
                <versionRange>0.0.0</versionRange>
              </requirement>
            </extraRequirements>
          </dependency-resolution>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-source-feature-plugin</artifactId>
        <version>${tycho-extras.version}</version>
        <executions>
          <execution>
            <phase>package</phase>
            <id>source-feature</id>
            <goals>
              <goal>source-feature</goal>
            </goals>
            <configuration>
              <plugins>
                <plugin id="org.eclipse.platform.doc.isv" versionRange="0.0.0"/>
              </plugins>
              <excludes>
                <plugin id="org.eclipse.platform.doc.user"/>
                <plugin id="org.eclipse.core.filesystem.linux.x86_64"/>
                <plugin id="org.eclipse.core.filesystem.macosx"/>
                <plugin id="org.eclipse.core.filesystem.win32.x86_64"/>
                <plugin id="org.eclipse.core.filesystem.linux.ppc64le"/>
                <plugin id="org.eclipse.core.resources.win32.x86_64"/>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <id>attached-p2-metadata</id>
            <phase>package</phase>
            <goals>
              <goal>p2-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
