<?xml version="1.0" encoding="UTF-8"?>
<!-- 
###############################################################################
# Copyright (c) 2012 Red Hat, 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:
#     Krzysztof Daniel, Red Hat, Inc. - 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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse</groupId>
    <artifactId>eclipse-platform-parent</artifactId>
    <version>4.2.2-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>eclipse.platform.swt.binaries</groupId>
  <artifactId>eclipse.platform.swt.binaries</artifactId>
  <version>4.2.2-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/platform/eclipse.platform.swt.binaries.git</tycho.scmUrl>
  </properties>

  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>eclipse-hosted</id>
      <url>https://repo.eclipse.org/content/repositories/eclipse/</url>
    </repository>
  </repositories>

  <modules>
    <module>bundles/org.eclipse.swt.cocoa.macosx</module>
    <module>bundles/org.eclipse.swt.cocoa.macosx.x86_64</module>
    <module>bundles/org.eclipse.swt.gtk.aix.ppc</module>
    <module>bundles/org.eclipse.swt.gtk.aix.ppc64</module>
    <module>bundles/org.eclipse.swt.gtk.hpux.ia64_32</module>
    <module>bundles/org.eclipse.swt.gtk.linux.ppc</module>
    <module>bundles/org.eclipse.swt.gtk.linux.ppc64</module>
    <module>bundles/org.eclipse.swt.gtk.linux.ppc64le</module>
    <module>bundles/org.eclipse.swt.gtk.linux.s390</module>
    <module>bundles/org.eclipse.swt.gtk.linux.s390x</module>
    <module>bundles/org.eclipse.swt.gtk.linux.ia64</module>
    <module>bundles/org.eclipse.swt.gtk.linux.x86</module>
    <module>bundles/org.eclipse.swt.gtk.linux.x86_64</module>
    <module>bundles/org.eclipse.swt.gtk.solaris.sparc</module>
    <module>bundles/org.eclipse.swt.gtk.solaris.x86</module>
    <module>bundles/org.eclipse.swt.win32.win32.x86</module>
    <module>bundles/org.eclipse.swt.win32.win32.x86_64</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <filesets>
            <fileset>
              <directory>@dot</directory>
              <includes>
                <include>**/*</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
            <fileset>
              <directory>org</directory>
              <includes>
                <include>**/*</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
            <fileset>
              <directory>.</directory>
              <includes>
                <include>.apibuild.xml</include>
                <include>external.xpt</include>
                <include>src.zip</include>
                <include>swt-debug.jar</include>
                <include>swt.jar</include>
                <include>version.txt</include>
                <include>@dot</include>
                <include>org</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <!--
            minimal declared bree is CDC-1.0/Foundation-1.0
            all/most swt fragments require awt during build so one of j2se is required
            theoretically we should be using J2SE-1.3, but I am too lazy to locate
            and install it for my linux/x64 system.
          -->
          <executionEnvironment>J2SE-1.4</executionEnvironment>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <configuration>
          <!-- setup compiler source/target to match CDC-1.0/Foundation-1.0 -->
          <source>1.3</source>
          <target>1.1</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
