<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2009, 2019 Xored Software Inc and others.
    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:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->

<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>
    <artifactId>rcptt.runtime</artifactId>
    <groupId>org.eclipse.rcptt</groupId>
    <version>2.4.0-SNAPSHOT</version>
  </parent>

  <modules>
    <module>org.eclipse.rcptt.tesla.core.am</module>
    <module>org.eclipse.rcptt.tesla.canvas</module>
    <module>org.eclipse.rcptt.tesla.gef</module>
    <module>org.eclipse.rcptt.tesla.gef.aspects</module>
    <module>org.eclipse.rcptt.tesla.jobs.aspects</module>
    <module>org.eclipse.rcptt.tesla.gmf</module>
    <module>org.eclipse.rcptt.tesla.gmf.aspects</module>
    <module>org.eclipse.rcptt.tesla.jdt</module>
    <module>org.eclipse.rcptt.tesla.jdt.aspects</module>
    <module>org.eclipse.rcptt.tesla.jface.aspects</module>
    <module>org.eclipse.rcptt.tesla.jface.text</module>
    <module>org.eclipse.rcptt.tesla.jface.text.aspects</module>
    <module>org.eclipse.rcptt.tesla.jface.text.reconciler.aspects</module>
    <module>org.eclipse.rcptt.tesla.jface.databinding</module>
    <module>org.eclipse.rcptt.tesla.jface.databinding.aspects</module>
    <module>org.eclipse.rcptt.tesla.jface.databinding.observable.aspects</module>
    <module>org.eclipse.rcptt.tesla.jface.fragment</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.draw2d</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.forms</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.gef</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.gmf</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.jface</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.jface.text</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.swt</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.workbench</module>
    <module>org.eclipse.rcptt.tesla.recording.aspects.workbench.texteditor</module>
    <module>org.eclipse.rcptt.tesla.recording.draw2d</module>
    <module>org.eclipse.rcptt.tesla.recording.gef</module>
    <module>org.eclipse.rcptt.tesla.recording.gmf</module>
    <module>org.eclipse.rcptt.tesla.recording.swt</module>
    <module>org.eclipse.rcptt.tesla.recording.canvas</module>
    <module>org.eclipse.rcptt.tesla.recording.jface.text</module>
    <module>org.eclipse.rcptt.tesla.recording.workbench.texteditor</module>
    <module>org.eclipse.rcptt.tesla.swt.aspects</module>
    <module>org.eclipse.rcptt.tesla.swt.fragment</module>
    <module>org.eclipse.rcptt.tesla.swt</module>
    <module>org.eclipse.rcptt.tesla.ui.ide</module>
    <module>org.eclipse.rcptt.tesla.ui.ide.aspects</module>
    <module>org.eclipse.rcptt.tesla.workbench.texteditor</module>
    <module>org.eclipse.rcptt.tesla.workbench.texteditor.aspects</module>
    <module>org.eclipse.rcptt.tesla.variables</module>
    <module>org.eclipse.rcptt.tesla.properties.view</module>
  </modules>
  
  <profiles>
    <profile>
      <id>runtime3x</id>
      <modules>
	<module>org.eclipse.rcptt.tesla.runtime-feature</module>
	<module>org.eclipse.rcptt.tesla.swt.e3x</module>
	<module>org.eclipse.rcptt.tesla.workbench.aspects</module>
      </modules>
    </profile>
    <profile>
      <id>runtime4x</id>
      <modules>
	<module>org.eclipse.rcptt.tesla.runtime.e4x-feature</module>
	<module>org.eclipse.rcptt.tesla.swt.e4x</module>
	<module>org.eclipse.rcptt.tesla.workbench.aspects.e4x</module>
      </modules>
    </profile>
  </profiles>
  <groupId>org.eclipse.rcptt.tesla</groupId>
  <artifactId>tesla</artifactId>
  <packaging>pom</packaging>
</project>
