<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2004, 2013 BREDEX GmbH. 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
  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>
    <parent>
        <artifactId>org.eclipse.jubula.releng.server.rc.rcp</artifactId>
        <groupId>org.eclipse.jubula</groupId>
        <version>8.0.1-SNAPSHOT</version>
        <relativePath>../org.eclipse.jubula.releng.server.rc.rcp</relativePath>
    </parent>
    <artifactId>org.eclipse.jubula.rc.rcp.e3.releng</artifactId>
    <packaging>pom</packaging>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.jubula</groupId>
            <artifactId>org.eclipse.jubula.rc.rcp.common</artifactId>
            <version>8.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jubula</groupId>
            <artifactId>org.eclipse.jubula.rc.rcp.swt</artifactId>
            <version>8.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <modules>
        <module>../org.eclipse.jubula.rc.rcp.e3</module>
        <module>../org.eclipse.jubula.rc.rcp.e3.specific</module>
        <module>../org.eclipse.jubula.rc.rcp.e3.feature</module>
        <module>../org.eclipse.jubula.rc.rcp.e3.site</module>
    </modules>
    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <resolver>p2</resolver>
                    <pomDependencies>consider</pomDependencies>
                    <target>
                        <artifact>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>${project.artifactId}</artifactId>
                            <version>${project.version}</version>
                            <classifier>../org.eclipse.jubula.project.configuration/target/definitions/e3</classifier>
                        </artifact>
                    </target>
                    <environments>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
