<?xml version="1.0" encoding="UTF-8"?>

<!--
   Copyright (C) 2017, SSI Schaefer IT Solutions GmbH
   and other copyright owners as documented in the project's IP log.

   This program and the accompanying materials are made available
   under the terms of the Eclipse Distribution License v1.0 which
   accompanies this distribution, is reproduced below, and is
   available at http://www.eclipse.org/org/documents/edl-v10.php

   All rights reserved.

   Redistribution and use in source and binary forms, with or
   without modification, are permitted provided that the following
   conditions are met:

   - Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   - Redistributions in binary form must reproduce the above
     copyright notice, this list of conditions and the following
     disclaimer in the documentation and/or other materials provided
     with the distribution.

   - Neither the name of the Eclipse Foundation, Inc. nor the
     names of its contributors may be used to endorse or promote
     products derived from this software without specific prior
     written permission.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
   CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
   CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse</groupId>
  <artifactId>tea</artifactId>
  <version>1.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <properties>
    <tycho-version>1.0.0</tycho-version>
    <tycho-extras-version>1.0.0</tycho-extras-version>
  </properties>
  <repositories>
    <repository>
      <id>oxygen</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/releases/oxygen</url>
    </repository>
    <repository>
      <id>lcdsl</id>
      <layout>p2</layout>
      <url>https://mduft.github.io/lcdsl-latest</url>
    </repository>
    <repository>
      <id>ease-nightly</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/ease/update/nightly</url>
    </repository>
  </repositories>

  <modules>
    <module>org.eclipse.tea.core</module>
    <module>org.eclipse.tea.core.ui</module>
    <module>org.eclipse.tea.core.ui.live</module>
    <module>org.eclipse.tea.core_feature</module>
    <module>org.eclipse.tea.ease</module>
    <module>org.eclipse.tea.lcdsl.library_feature</module>
    <module>org.eclipse.tea.library.build</module>
    <module>org.eclipse.tea.library.build.lcdsl</module>
    <module>org.eclipse.tea.library_feature</module>
    <module>org.eclipse.tea.samples</module>
    <module>org.eclipse.tea.scripting_feature</module>
    <module>org.eclipse.tea.ui_feature</module>
    <module>org.eclipse.tea.repository</module>
  </modules>
  <build>
    <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>
          <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-source-plugin</artifactId>
        <version>${tycho-version}</version>
        <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>
      <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-p2-plugin</artifactId>
      <version>${tycho-version}</version>
      <executions>
        <execution>
          <id>attach-p2-metadata</id>
          <phase>package</phase>
          <goals>
            <goal>p2-metadata</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    </plugins>
  </build>
</project>
