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

  <groupId>org.eclipse.equinox.p2</groupId>
  <artifactId>rt.equinox.p2</artifactId>
  <version>4.16.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/equinox/rt.equinox.p2.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>
    
    <profile>
      <id>osx</id>
      <activation>
        <property>
          <name>java.vendor.url</name>
          <value>http://www.apple.com/</value>
        </property>
      </activation>
      <properties>
        <tycho.test.jvmArgs>-Xmx800m -XX:MaxPermSize=256m -Dosgi.ws=cocoa -XstartOnFirstThread</tycho.test.jvmArgs>
        <osgi.ws>cocoa</osgi.ws>
      </properties>
    </profile>
  </profiles>

  <build>
    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.eclipse.cbi.maven.plugins</groupId>
                    <artifactId>eclipse-cbi-plugin</artifactId>
                    <versionRange>[0.0.0,)</versionRange>
                    <goals>
                      <goal>generate-api-build-xml</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.eclipse.tycho.extras</groupId>
                    <artifactId>tycho-eclipserun-plugin</artifactId>
                    <versionRange>[0.0.0,)</versionRange>
                    <goals>
                      <goal>eclipse-run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <modules>
    <module>bundles/org.eclipse.equinox.frameworkadmin</module>
    <module>bundles/org.eclipse.equinox.frameworkadmin.equinox</module>
    <module>bundles/org.eclipse.equinox.frameworkadmin.test</module>
    <module>bundles/org.eclipse.equinox.p2.artifact.optimizers</module>
    <module>bundles/org.eclipse.equinox.p2.artifact.processors</module>
    <module>bundles/org.eclipse.equinox.p2.artifact.repository</module>
    <module>bundles/org.eclipse.equinox.p2.console</module>
    <module>bundles/org.eclipse.equinox.p2.core</module>
    <module>bundles/org.eclipse.equinox.p2.director</module>
    <module>bundles/org.eclipse.equinox.p2.director.app</module>
    <module>bundles/org.eclipse.equinox.p2.directorywatcher</module>
    <module>bundles/org.eclipse.equinox.p2.discovery</module>
    <module>bundles/org.eclipse.equinox.p2.discovery.compatibility</module>
    <module>bundles/org.eclipse.equinox.p2.engine</module>
    <module>bundles/org.eclipse.equinox.p2.extensionlocation</module>
    <module>bundles/org.eclipse.equinox.p2.garbagecollector</module>
    <module>bundles/org.eclipse.equinox.p2.installer</module>
    <module>bundles/org.eclipse.equinox.p2.jarprocessor</module>
    <module>bundles/org.eclipse.equinox.p2.metadata</module>
    <module>bundles/org.eclipse.equinox.p2.metadata.repository</module>
    <module>bundles/org.eclipse.equinox.p2.operations</module>
    <module>bundles/org.eclipse.equinox.p2.publisher</module>
    <module>bundles/org.eclipse.equinox.p2.reconciler.dropins</module>
    <module>bundles/org.eclipse.equinox.p2.repository</module>
    <module>bundles/org.eclipse.equinox.p2.repository.tools</module>
    <module>bundles/org.eclipse.equinox.p2.sar</module>
    <module>bundles/org.eclipse.equinox.p2.touchpoint.eclipse</module>
    <module>bundles/org.eclipse.equinox.p2.touchpoint.natives</module>
    <module>bundles/org.eclipse.equinox.p2.transport.ecf</module>
    <module>bundles/org.eclipse.equinox.p2.ui</module>
    <module>bundles/org.eclipse.equinox.p2.ui.importexport</module>
    <module>bundles/org.eclipse.equinox.p2.ui.admin</module>
    <module>bundles/org.eclipse.equinox.p2.ui.admin.rcp</module>
    <module>bundles/org.eclipse.equinox.p2.ui.discovery</module>
    <module>bundles/org.eclipse.equinox.p2.updatechecker</module>
    <module>bundles/org.eclipse.equinox.p2.updatesite</module>
    <module>bundles/org.eclipse.equinox.simpleconfigurator</module>
    <module>bundles/org.eclipse.equinox.simpleconfigurator.manipulator</module>
    <module>bundles/org.eclipse.equinox.p2.publisher.eclipse</module>
    <module>features/org.eclipse.equinox.p2.core.feature</module>
    <module>features/org.eclipse.equinox.p2.extras.feature</module>
    <module>features/org.eclipse.equinox.p2.discovery.feature</module>
    <module>bundles/org.eclipse.equinox.p2.ui.sdk</module>
    <module>bundles/org.eclipse.equinox.p2.ui.sdk.scheduler</module>
    <module>features/org.eclipse.equinox.p2.sdk</module>
    <module>features/org.eclipse.equinox.p2.rcp.feature</module>
    <module>features/org.eclipse.equinox.p2.user.ui</module>

    <module>bundles/org.eclipse.equinox.p2.tests.reconciler.product</module>
    <module>bundles/org.eclipse.equinox.p2.tests.optimizers</module>
    <module>bundles/org.eclipse.equinox.p2.tests</module>
    <module>bundles/org.eclipse.equinox.p2.tests.discovery</module>
    <module>bundles/org.eclipse.equinox.p2.tests.ui</module>
    <module>bundles/org.eclipse.equinox.p2.tests.verifier</module>

    <module>bundles/org.eclipse.equinox.p2.artifact.checksums.bouncycastle</module>

    <module>examples</module>
  </modules>

</project>
