<?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>3.0.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.linuxtools.lttng</groupId>
  <artifactId>linuxtools-lttng-parent</artifactId>
  <version>3.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Linux Tools LTTng 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>

<properties>
  <base.test.vmargs>-Xms256m -Xmx1024m -XX:MaxPermSize=256m</base.test.vmargs>
</properties>

<profiles>
  <profile>
    <id>tracingRcp</id>
      <modules>
        <module>org.eclipse.linuxtools.tracing.rcp.product</module>
      </modules>
  </profile>
  <profile>
    <id>lttngPackage</id>
      <properties>
          <lttngPackageDestination>/var/www/technology/linuxtools/lttng/update-nightly/</lttngPackageDestination>
      </properties>
      <modules>
        <module>org.eclipse.linuxtools.lttng.releng-site</module>
      </modules>
  </profile>
  <profile>
    <id>macosx</id>
    <activation>
      <os>
        <family>mac</family>
      </os>
    </activation>
    <properties>
      <base.ui.test.vmargs>${base.test.vmargs} -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</base.ui.test.vmargs>
    </properties>
  </profile>
  <profile>
    <id>not-macosx</id>
    <activation>
      <os>
        <family>!mac</family>
      </os>
    </activation>
    <properties>
      <!-- Disable webkit integration, especially unstable on Linux -->
      <base.ui.test.vmargs>${base.test.vmargs} -Dorg.eclipse.swt.browser.DefaultType=mozilla</base.ui.test.vmargs>
    </properties>
  </profile>
</profiles>

  <modules>
    <module>org.eclipse.linuxtools.ctf</module>
    <module>org.eclipse.linuxtools.ctf.core</module>
    <module>org.eclipse.linuxtools.ctf.core.tests</module>
    <module>org.eclipse.linuxtools.ctf.parser</module>
    <module>org.eclipse.linuxtools.ctf.parser.tests</module>

    <module>org.eclipse.linuxtools.tmf</module>
    <module>org.eclipse.linuxtools.tmf.core</module>
    <module>org.eclipse.linuxtools.tmf.core.tests</module>
    <module>org.eclipse.linuxtools.tmf.ui</module>
    <module>org.eclipse.linuxtools.tmf.ui.tests</module>
    <module>org.eclipse.linuxtools.tmf.ui.swtbot.tests</module>
    <module>org.eclipse.linuxtools.tmf.help</module>

    <module>org.eclipse.linuxtools.tmf.ctf</module>
    <module>org.eclipse.linuxtools.tmf.ctf.core</module>
    <module>org.eclipse.linuxtools.tmf.ctf.core.tests</module>
    <module>org.eclipse.linuxtools.tmf.ctf.ui.swtbot.tests</module>

    <module>org.eclipse.linuxtools.tmf.analysis.xml.core</module>
    <module>org.eclipse.linuxtools.tmf.analysis.xml.core.tests</module>
    <module>org.eclipse.linuxtools.tmf.analysis.xml.ui</module>
    <module>org.eclipse.linuxtools.tmf.analysis.xml.ui.tests</module>

    <module>org.eclipse.linuxtools.lttng2</module>
    <module>org.eclipse.linuxtools.lttng2.core</module>
    <module>org.eclipse.linuxtools.lttng2.core.tests</module>
    <module>org.eclipse.linuxtools.lttng2.ui</module>
    <module>org.eclipse.linuxtools.lttng2.ui.tests</module>
    <module>org.eclipse.linuxtools.lttng.help</module>

    <module>org.eclipse.linuxtools.lttng2.kernel</module>
    <module>org.eclipse.linuxtools.lttng2.kernel.core</module>
    <module>org.eclipse.linuxtools.lttng2.kernel.core.tests</module>
    <module>org.eclipse.linuxtools.lttng2.kernel.ui</module>
    <module>org.eclipse.linuxtools.lttng2.kernel.ui.tests</module>
    <module>org.eclipse.linuxtools.lttng2.kernel.ui.swtbot.tests</module>

    <module>org.eclipse.linuxtools.lttng2.ust</module>
    <module>org.eclipse.linuxtools.lttng2.ust.core</module>
    <module>org.eclipse.linuxtools.lttng2.ust.core.tests</module>
    <module>org.eclipse.linuxtools.lttng2.ust.ui</module>
    <module>org.eclipse.linuxtools.lttng2.ust.ui.tests</module>


    <module>org.eclipse.linuxtools.gdbtrace</module>
    <module>org.eclipse.linuxtools.gdbtrace.core</module>
    <module>org.eclipse.linuxtools.gdbtrace.core.tests</module>
    <module>org.eclipse.linuxtools.gdbtrace.ui</module>
    <module>org.eclipse.linuxtools.gdbtrace.ui.tests</module>
    <module>org.eclipse.linuxtools.gdbtrace.help</module>

    <module>org.eclipse.linuxtools.tracing.rcp.branding</module>
    <module>org.eclipse.linuxtools.tracing.rcp.branding.feature</module>
    <module>org.eclipse.linuxtools.tracing.rcp</module>
    <module>org.eclipse.linuxtools.tracing.rcp.help</module>
    <module>org.eclipse.linuxtools.tracing.rcp.ui</module>

    <module>org.eclipse.linuxtools.tracing.examples</module>
  </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <environments>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>macosx</os>
                            <ws>cocoa</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho-version}</version>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>

</project>
