<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2009, 2019 Xored Software Inc and others.
    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:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->

<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>
    <artifactId>tesla</artifactId>
    <groupId>org.eclipse.rcptt.tesla</groupId>
    <version>2.5.0-SNAPSHOT</version>
  </parent>
  <artifactId>org.eclipse.rcptt.tesla.swt</artifactId>
  <packaging>eclipse-plugin</packaging>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.rcptt.tesla</groupId>
      <artifactId>org.eclipse.rcptt.tesla.swt.fragment</artifactId>
      <version>2.5.0-SNAPSHOT</version>
      <type>eclipse-plugin</type>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>${tycho-groupid}</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.eclipse.rcptt.tesla</groupId>
            <artifactId>org.eclipse.rcptt.tesla.swt.fragment</artifactId>
            <version>2.5.0-SNAPSHOT</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>${tycho-groupid}</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
           <dependency-resolution>
              <extraRequirements>
                 <requirement>
                    <type>eclipse-plugin</type>
                    <id>org.eclipse.rcptt.tesla.swt.fragment</id>
                    <versionRange>0.0.0</versionRange>
                 </requirement>
              </extraRequirements>
           </dependency-resolution>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
