<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2012,2013 BSI Business Systems Integration AG.
   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:
     Stephan Leicht Vogt - 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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse.scout</groupId>
    <artifactId>org.eclipse.scout.rt</artifactId>
    <version>3.10.1-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.scout.rt</groupId>
  <artifactId>org.eclipse.scout.rt.parent</artifactId>
  <packaging>pom</packaging>

  <modules>
    <module>../org.eclipse.scout.target</module>
    <module>../org.apache.derby.jdbc_1091.fragment</module>

    <module>../org.eclipse.scout.commons</module>
    <module>../org.eclipse.scout.service</module>
    <module>../org.eclipse.scout.http.servletfilter</module>
    <module>../org.eclipse.scout.jaxws216</module>
    <module>../org.eclipse.scout.jaxws216.jre16.fragment</module>
    <module>../org.eclipse.scout.jaxws216.jre18.fragment</module>
    <module>../org.eclipse.scout.net</module>

    <module>../org.eclipse.scout.rt.servicetunnel</module>
    <module>../org.eclipse.scout.rt.shared</module>

    <module>../org.eclipse.scout.rt.client</module>
    <module>../org.eclipse.scout.rt.client.mobile</module>
    <module>../org.eclipse.scout.rt.extension.client</module>
    <module>../org.eclipse.scout.svg.client</module>
    <module>../org.eclipse.scout.rt.client-feature</module>

    <module>../org.eclipse.scout.rt.server</module>
    <module>../org.eclipse.scout.rt.jdbc.derby</module>

    <module>../org.eclipse.scout.rt.ui.swing</module>
    <module>../org.eclipse.scout.rt.ui.swing.browser.swt.fragment</module>
    <module>../org.eclipse.scout.svg.ui.swing</module>
    <module>../org.eclipse.scout.rt.swing-feature</module>

    <module>../org.eclipse.scout.rt.ui.swt</module>
    <module>../org.eclipse.scout.svg.ui.swt</module>
    <module>../org.eclipse.scout.rt.swt-feature</module>

    <module>../org.eclipse.scout.rt.ui.svg.calendar</module>

    <module>../org.eclipse.scout.rt.feature.about</module>
    <module>../org.eclipse.scout.rt.core-feature</module>
    <module>../org.eclipse.scout.rt-feature</module>
    <module>../org.w3c.dom.svg.fragment</module>
    <module>../org.eclipse.scout.rt.batik.dependency-feature</module>
  </modules>

  <profiles>
    <profile>
      <id>rap-build</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>../org.eclipse.scout.rt.ui.rap</module>
        <module>../org.eclipse.scout.rt.ui.rap.workbench</module>
        <module>../org.eclipse.scout.rt.ui.rap.mobile</module>
        <module>../org.eclipse.scout.rt.ui.rap.theme.rayo</module>
        <module>../org.eclipse.scout.rt.ui.rap.theme.rayo.mobile</module>
        <module>../org.eclipse.scout.svg.ui.rap</module>
        <module>../org.eclipse.scout.rt.rap-feature</module>
        <module>../org.eclipse.scout.rt.rap.basic.target-feature</module>
      </modules>
    </profile>

    <profile>
      <id>testing-build</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>../org.eclipse.scout.commons.test</module>
        <module>../org.eclipse.scout.jaxws216.test</module>
        <module>../org.eclipse.scout.rt.client.mobile.test</module>
        <module>../org.eclipse.scout.rt.client.test</module>
        <module>../org.eclipse.scout.rt.client.testenvironment</module>
        <module>../org.eclipse.scout.rt.extension.client.test</module>
        <module>../org.eclipse.scout.rt.rap.testing-feature</module>
        <module>../org.eclipse.scout.rt.server.test</module>
        <module>../org.eclipse.scout.rt.server.testenvironment</module>
        <module>../org.eclipse.scout.rt.shared.test</module>
        <module>../org.eclipse.scout.rt.ui.rap.test</module>
        <module>../org.eclipse.scout.rt.ui.swing.test</module>
        <module>../org.eclipse.scout.rt.ui.swt.test</module>
        <module>../org.eclipse.scout.service.test</module>
        <module>../org.eclipse.scout.net.test</module>
        <module>../org.eclipse.scout.rt.testing-feature</module>
        <module>../org.eclipse.scout.rt.testing.client</module>
        <module>../org.eclipse.scout.rt.testing.client.test</module>
        <module>../org.eclipse.scout.rt.testing.common.ant.optional.junit.fragment</module>
        <module>../org.eclipse.scout.rt.testing.commons</module>
        <module>../org.eclipse.scout.rt.testing.commons.test</module>
        <module>../org.eclipse.scout.rt.testing.server</module>
        <module>../org.eclipse.scout.rt.testing.server.test</module>
        <module>../org.eclipse.scout.rt.testing.shared</module>
        <module>../org.eclipse.scout.rt.testing.shared.test</module>
        <module>../org.eclipse.scout.rt.testing.ui.rap</module>
        <module>../org.eclipse.scout.rt.testing.ui.swing</module>
        <module>../org.eclipse.scout.rt.testing.ui.swt</module>
        <module>../org.eclipse.scout.rt.testing.core-feature</module>
        <module>../org.eclipse.scout.rt.testing.swing-feature</module>
        <module>../org.eclipse.scout.rt.testing.swt-feature</module>
        <module>../org.eclipse.scout.rt.spec.client</module>
      </modules>
    </profile>

    <profile>
      <id>repository-build</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>../org.eclipse.scout.rt-repository</module>
        <module>../org.eclipse.scout.rt.rap-repository</module>
      </modules>
    </profile>

    <profile>
      <id>repositoryv34v35-build</id>
      <modules>
        <module>../org.eclipse.scout.rt.v34v35-repository</module>
      </modules>
    </profile>
  </profiles>
</project>
