<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2015 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
-->
<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.7.0-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>

  <groupId>eclipse.platform.resources</groupId>
  <artifactId>eclipse.platform.resources</artifactId>
  <version>4.7.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/platform/eclipse.platform.resources.git</tycho.scmUrl>
  </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>
    </profile>
  </profiles>

  <modules>
    <module>bundles/org.eclipse.core.filesystem</module>
    <module>bundles/org.eclipse.core.filesystem.linux.ppc</module>
    <module>bundles/org.eclipse.core.filesystem.linux.ppc64</module>
    <module>bundles/org.eclipse.core.filesystem.linux.ppc64le</module>
    <module>bundles/org.eclipse.core.filesystem.linux.x86</module>
    <module>bundles/org.eclipse.core.filesystem.linux.x86_64</module>
    <module>bundles/org.eclipse.core.filesystem.macosx</module>
    <module>bundles/org.eclipse.core.filesystem.win32.x86</module>
    <module>bundles/org.eclipse.core.filesystem.win32.x86_64</module>

    <module>bundles/org.eclipse.core.resources</module>
    <module>bundles/org.eclipse.core.resources.win32.x86</module>
    <module>bundles/org.eclipse.core.resources.win32.x86_64</module>

    <module>tests/org.eclipse.core.tests.filesystem.feature</module>
    <module>tests/org.eclipse.core.tests.resources</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant1</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant2</module>
    <module>tests/org.eclipse.core.tests.resources.saveparticipant3</module>
  </modules>
</project>
