<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012,2017 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php
 
  Contributors:
     Igor Fedorenko - initial implementation
	 Conrad Groth - add platform specific JUnit test bundles
-->
<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.15.0-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>eclipse.platform.swt</groupId>
  <artifactId>eclipse.platform.swt</artifactId>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/platform/eclipse.platform.swt.git</tycho.scmUrl>
    <os-jvm-flags></os-jvm-flags>
  </properties>

  <!-- 
    To build individual bundles, we specify a repository where to find parent pom, 
    in case it is not in local maven cache already
    and that parent pom also has fuller individual-bundle profile 
    defined that is combined with this one. --> 
  <profiles>
    <profile>
      <id>build-individual-bundles</id>
      <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>
      <build>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <dependency-resolution>
              <profileProperties>
                <org.eclipse.swt.buildtime>true</org.eclipse.swt.buildtime>
              </profileProperties>
            </dependency-resolution>
          </configuration>
        </plugin>
      </plugins>
      </build>
    </profile>
    <profile>
      <id>mac</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
	  <modules>
	    <module>tests/org.eclipse.swt.tests.cocoa</module>
	  </modules>
	<properties>
		<os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
	</properties>
    </profile>
    <profile>
      <id>unix</id>
      <activation>
        <os>
          <family>unix</family>
          <name>Linux</name>
	</os>
      </activation>
	  <modules>
	    <module>tests/org.eclipse.swt.tests.gtk</module>
	  </modules>
    </profile>
    <profile>
      <id>windows</id>
      <activation>
        <os>
          <family>windows</family>
        </os>
      </activation>
	  <modules>
	    <module>tests/org.eclipse.swt.tests.win32</module>
	  </modules>
    </profile>
  </profiles>


  <modules>
    <module>bundles/org.eclipse.swt</module>
    <module>local-build/org.eclipse.swt.fragments.localbuild</module>
    <module>bundles/org.eclipse.swt.tools.base</module>
    <module>bundles/org.eclipse.swt.tools.spies</module>
    <module>bundles/org.eclipse.swt.tools</module>
    <module>examples/org.eclipse.swt.examples</module>
    <module>examples/org.eclipse.swt.examples.browser.demos</module>
    <module>examples/org.eclipse.swt.examples.launcher</module>
    <module>examples/org.eclipse.swt.examples.ole.win32</module>
    <module>examples/org.eclipse.swt.examples.views</module>
    <module>tests/org.eclipse.swt.tests.fragments.feature</module>
    <module>tests/org.eclipse.swt.tests</module>
    <module>features/org.eclipse.swt.tools.feature</module>
  </modules>
</project>
