<?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 and others. - initial API and implementation
###############################################################################
-->
<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>binaries-parent</artifactId>
    <groupId>eclipse.platform.swt.binaries</groupId>
    <version>4.2.0-SNAPSHOT</version>
    <relativePath>../binaries-parent/</relativePath>
  </parent>
  <groupId>eclipse.platform.swt.binaries</groupId>
  <artifactId>org.eclipse.swt.gtk.solaris.x86</artifactId>
  <version>3.100.1-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

  <properties>
    <os>solaris</os>
    <ws>gtk</ws>
    <arch>x86</arch>
    <buildid>${buildId}</buildid>
  </properties>

  <!--dependencies>
    <dependency>
      <groupId>eclipse.platform.swt.binaries</groupId>
      <artifactId>binaries-parent</artifactId>
      <version>1.0</version>
      <type>pom</type>
    </dependency>
  </dependencies-->

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>swtdownload</id>
            <phase>package</phase>
            <configuration>
              <target>
                <ant antfile="build.xml" target="swtdownload" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>0.0.0</version> 
            <scope>system</scope>
            <systemPath>${java.home}/../lib/tools.jar</systemPath>
          </dependency>
          <dependency>
            <groupId>bsf</groupId>
            <artifactId>bsf</artifactId>
            <version>2.4.0</version>
          </dependency>
          <dependency>
            <groupId>rhino</groupId>
            <artifactId>js</artifactId>
            <version>1.7R2</version>
          </dependency>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-apache-bsf</artifactId>
            <version>1.8.3</version>
          </dependency>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-nodeps</artifactId>
            <version>1.8.1</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>copy-swtzip-to-target</id>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <move file="swt-${buildId}-${ws}-${os}-${arch}.zip" todir="target" />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <!-- This has to be here. Profiles are not inheritable. -->
  <profiles>
    <profile>
      <id>build-natives</id>
      <activation>
        <property>
          <!-- This has to be hardcoded. Profiles are not allowed to use pom defined properties :-( -->
          <name>native</name>
          <value>gtk.solaris.x86</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <id>natives</id>
                <phase>process-resources</phase>
                <configuration>
                  <target>
                    <ant antfile="build.xml" target="build_libraries" />
                  </target>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>bsf</groupId>
                <artifactId>bsf</artifactId>
                <version>2.4.0</version>
              </dependency>
              <dependency>
                <groupId>rhino</groupId>
                <artifactId>js</artifactId>
                <version>1.7R2</version>
              </dependency>
              <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant-apache-bsf</artifactId>
                <version>1.8.3</version>
              </dependency>
              <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant-nodeps</artifactId>
                <version>1.8.1</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
