<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2018 École Polytechnique de Montréal

   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License 2.0
   which accompanies this distribution, and is available at
   https://www.eclipse.org/legal/epl-2.0/

   SPDX-License-Identifier: EPL-2.0
-->

<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>
    <artifactId>org.eclipse.tracecompass.incubator</artifactId>
    <groupId>org.eclipse.tracecompass.incubator</groupId>
    <version>0.8.0-SNAPSHOT</version>
  </parent>

  <artifactId>org.eclipse.tracecompass.incubator.doc</artifactId>
  <packaging>pom</packaging>

  <name>Trace Compass Incubator Documentation</name>

  <properties>
    <docDestination>/home/data/httpd/archive.eclipse.org/tracecompass.incubator/doc</docDestination>
    <wikitext.version>3.0.7</wikitext.version>
    <guava.version>21.0</guava.version>
  </properties>

  <modules>

    <module>org.eclipse.tracecompass.incubator.callstack.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.perf.profiling.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.virtual.machine.analysis.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.uftrace.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.ftrace.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.lttng2.ust.extras.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.atrace.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.trace.server.doc.dev</module>
    <module>org.eclipse.tracecompass.incubator.opentracing.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.kernel.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.ros.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.ros2.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.eventfieldcount.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.filters.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.scripting.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.otf2.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.gerrit.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.system.doc.user</module>
    <module>org.eclipse.tracecompass.incubator.inandout.doc.user</module>
    <!-- insert modules here -->
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>

        <dependencies>
          <dependency>
            <groupId>org.eclipse.mylyn.docs</groupId>
            <artifactId>org.eclipse.mylyn.wikitext</artifactId>
            <version>${wikitext.version}</version>
          </dependency>
          <dependency>
            <groupId>org.eclipse.mylyn.docs</groupId>
            <artifactId>org.eclipse.mylyn.wikitext.ant</artifactId>
            <version>${wikitext.version}</version>
          </dependency>
          <dependency>
            <groupId>org.eclipse.mylyn.docs</groupId>
            <artifactId>org.eclipse.mylyn.wikitext.mediawiki</artifactId>
            <version>${wikitext.version}</version>
          </dependency>
          <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
          </dependency>
      </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
