<?xml version="1.0" encoding="UTF-8"?>
<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>

  <groupId>org.eclipse.epsilon</groupId>
  <artifactId>parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.version>0.23.0</tycho.version>
  </properties>

  <modules>
    <module>features</module>
    <module>plugins</module>
    <module>tests</module>
    <module>standalone/org.eclipse.epsilon.standalone</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho.version}</version>
	<extensions>true</extensions>
      </plugin>

      <!-- Generate source bundles (exclude target so we don't enter
           an infinite loop for binary-only plugins, which have itself
           as the source). -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
	    <configuration>
	      <excludes>
		<exclude>target/**</exclude>
	      </excludes>
	    </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
	<groupId>org.eclipse.tycho</groupId>
	<artifactId>target-platform-configuration</artifactId>
        <version>${tycho.version}</version>
	<configuration>
          <target>
            <artifact>
	      <groupId>${project.groupId}</groupId>
	      <artifactId>org.eclipse.epsilon.targetplatform</artifactId>
	      <version>1.3.0-SNAPSHOT</version>
            </artifact>
          </target>
	  <dependency-resolution>
	    <extraRequirements>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.hamcrest.core</id>
                <versionRange>0.0.0</versionRange>
              </requirement>
            </extraRequirements>
          </dependency-resolution>
	  <environments>
	    <environment>
	      <os>linux</os>
	      <ws>gtk</ws>
	      <arch>x86</arch>
	    </environment>
	    <environment>
	      <os>linux</os>
	      <ws>gtk</ws>
	      <arch>x86_64</arch>
	    </environment>
	    <environment>
	      <os>win32</os>
	      <ws>win32</ws>
	      <arch>x86</arch>
	    </environment>
	    <environment>
	      <os>win32</os>
	      <ws>win32</ws>
	      <arch>x86_64</arch>
	    </environment>
	    <environment>
	      <os>macosx</os>
	      <ws>cocoa</ws>
	      <arch>x86_64</arch>
	    </environment>
	  </environments>
	</configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.10.3</version>
	<configuration>
	  <sourceFileIncludes>
	    <sourceFileInclude>org/eclipse/epsilon/**/*.java</sourceFileInclude>
	  </sourceFileIncludes>
	  <doctitle>Epsilon Interim API</doctitle>
	</configuration>
      </plugin>

    </plugins>
  </build>
</project>
