<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, Red Hat, Inc.

   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
-->

<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>

  <prerequisites>
    <maven>3.0</maven>
  </prerequisites>

  <parent>
    <groupId>org.eclipse.linuxtools</groupId>
    <artifactId>linuxtools-parent</artifactId>
    <version>1.1.1</version>
  </parent>

  <groupId>org.eclipse.linuxtools.profiling</groupId>
  <artifactId>linuxtools-profiling-parent</artifactId>
  <version>1.1.1</version>
  <packaging>pom</packaging>

  <name>Eclipse Linux Tools Valgrind Parent</name>

  <licenses>
    <license>
      <name>Eclipse Public License v1.0</name>
      <comments>
       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.htm
      </comments>
    </license>
  </licenses>
  
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>../src.xml</descriptor>
          </descriptors>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <modules>
    <module>org.eclipse.linuxtools.tools.launch.core</module>
    <module>org.eclipse.linuxtools.tools.launch.ui</module>
    <module>org.eclipse.linuxtools.tools.launch-feature</module>
    <module>org.eclipse.linuxtools.binutils</module>
    <module>org.eclipse.linuxtools.dataviewers</module>
    <module>org.eclipse.linuxtools.dataviewers.piechart</module>
    <module>org.eclipse.linuxtools.dataviewers.charts</module>
    <module>org.eclipse.linuxtools.dataviewers.annotatedsourceeditor</module>
    <module>org.eclipse.linuxtools.dataviewers-feature</module>
    <module>org.eclipse.linuxtools.profiling-feature</module>
    <module>org.eclipse.linuxtools.profiling.launch</module>
    <module>org.eclipse.linuxtools.profiling.launch.ui</module>
    <module>org.eclipse.linuxtools.profiling.launch.ui.rdt.proxy</module>
    <module>org.eclipse.linuxtools.profiling.launch.remote</module>
    <module>org.eclipse.linuxtools.profiling.remote-feature</module>
    <!--<module>org.eclipse.linuxtools.profiling.snapshot</module>-->
    <module>org.eclipse.linuxtools.profiling.tests</module>
    <module>org.eclipse.linuxtools.profiling.ui</module>
    <module>org.eclipse.linuxtools.profiling.ui.capability</module>
    <module>org.eclipse.linuxtools.rdt.proxy</module>
    <module>org.eclipse.linuxtools.ssh.proxy</module>
  </modules>

</project>
