<!--
   Copyright (C) 2011, 2019 Red Hat Inc. and others

   This program and the accompanying materials are made
   available under the terms of the Eclipse Public License 2.0
   which is available at https://www.eclipse.org/legal/epl-2.0/
  
   SPDX-License-Identifier: EPL-2.0

   Contributors:
       Red Hat Incorporated - 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>

  <prerequisites>
    <maven>3.3.9</maven>
  </prerequisites>
  <groupId>org.eclipse.linuxtools</groupId>
  <artifactId>linuxtools-parent</artifactId>
  <version>7.4.0</version>
  <packaging>pom</packaging>

  <name>Eclipse Linux Tools Parent</name>

  <licenses>
    <license>
      <name>Eclipse Public License v2.0</name>
      <comments>
   This program and the accompanying materials are made
   available under the terms of the Eclipse Public License 2.0
   which is available at https://www.eclipse.org/legal/epl-2.0/
  
   SPDX-License-Identifier: EPL-2.0
      </comments>
    </license>
  </licenses>
  <distributionManagement>
    <downloadUrl>http://eclipse.org/linuxtools/downloads.php</downloadUrl>
    <site>
      <id>linuxtools.website</id>
      <name>Eclipe Linux Tools Website</name>
      <url>http://eclipse.org/linuxtools</url>
    </site>
  </distributionManagement>

  <properties>
    <mirror-repo-name>update-7.4.0</mirror-repo-name>
    <mirror-docker-repo-name>update-docker-4.4.0</mirror-docker-repo-name>
    <mirror-mylyn-repo-name>updates-mylyn-2.4.0</mirror-mylyn-repo-name>
    <tycho-version>1.4.0</tycho-version>
    <tycho-extras-version>1.4.0</tycho-extras-version>
    <target-platform>linuxtools-e4.13</target-platform>
    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <sonar.jacoco.reportPath>${project.basedir}/../../target/jacoco.exec</sonar.jacoco.reportPath>
    <sonar.java.source>1.8</sonar.java.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <pluginRepositories>
    <pluginRepository>
      <id>repo.eclipse.org</id>
      <url>https://repo.eclipse.org/content/groups/releases/</url>
    </pluginRepository>
    <pluginRepository>
      <id>Maven Central Proxy</id>
      <url>https://repo.eclipse.org/content/repositories/maven_central/</url>
    </pluginRepository>
    <pluginRepository>
      <id>tycho-snapshots</id>
      <url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>

  </pluginRepositories>

  <profiles>
    <profile>
      <id>build-server</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>1.1.7</version>
            <executions>
              <execution>
                <id>sign</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.3.0.603</version>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho-extras-version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>p2-metadata</id>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>api-generation</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-cbi-plugin</artifactId>
            <version>1.1.7</version>
            <executions>
              <execution>
                <id>generate-api-build-xml</id>
                <goals>
                  <goal>generate-api-build-xml</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-eclipserun-plugin</artifactId>
            <!-- this is actually present in any 0.14+ version -->
            <version>${tycho-version}</version>
            <configuration>
              <repositories>
                <repository>
                  <id>eclipse</id>
                  <layout>p2</layout>
                  <url>http://download.eclipse.org/releases/oxygen</url>
                </repository>
              </repositories>
              <!-- actuall indexer call -->
              <appArgLine>-data target/apibuild-workspace -application org.eclipse.ant.core.antRunner -buildfile target/.apibuild.xml</appArgLine>
              <dependencies>
                <!-- list of bundles that we need -->
                <dependency>
                  <artifactId>org.eclipse.ant.core</artifactId>
                  <type>eclipse-plugin</type>
                </dependency>
                <dependency>
                  <artifactId>org.apache.ant</artifactId>
                  <type>eclipse-plugin</type>
                </dependency>
                <dependency>
                  <artifactId>org.eclipse.pde.api.tools</artifactId>
                  <type>eclipse-plugin</type>
                </dependency>
                <dependency>
                  <artifactId>org.eclipse.pde.build</artifactId>
                  <type>eclipse-plugin</type>
                </dependency>
                <dependency>
                  <artifactId>org.eclipse.pde.core</artifactId>
                  <type>eclipse-plugin</type>
                </dependency>
                <dependency>
                  <artifactId>org.eclipse.equinox.launcher</artifactId>
                  <type>eclipse-plugin</type>
                </dependency>
              </dependencies>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>eclipse-run</goal>
                </goals>
                <phase>compile</phase>
              </execution>
            </executions>
          </plugin>
            <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-packaging-plugin</artifactId>
              <version>${tycho-version}</version>
              <configuration>
                <additionalFileSets>
                  <fileSet>
                    <directory>${project.build.directory}</directory>
                    <includes>
                      <include>.api_description</include>
                    </includes>
                  </fileSet>
                </additionalFileSets>
              </configuration>
	  </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
			<id>regenHelp</id>
			<build>
				<pluginManagement>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>helpdocs</id>
								<configuration>
									<target>
										<taskdef classpathref="maven.plugin.classpath"
											resource="org/eclipse/mylyn/wikitext/mediawiki/ant/tasks.properties" />
										<taskdef classpathref="maven.plugin.classpath"
											resource="org/eclipse/mylyn/wikitext/ant/tasks.properties" />
										<ant antfile="build-helper.xml" target="all" />
									</target>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
						<dependencies>
							<dependency>
								<groupId>org.eclipse.mylyn.docs</groupId>
								<artifactId>org.eclipse.mylyn.wikitext.mediawiki.ant</artifactId>
								<version>3.0.33</version>
							</dependency>
						</dependencies>
					</plugin>
				</plugins>
				</pluginManagement>
			</build>
		</profile>
  </profiles>


  <modules>
    <module>profiling</module>
    <module>changelog</module>
    <module>gcov</module>
    <module>gprof</module>
    <module>libhover</module>
    <module>javadocs</module>
    <module>man</module>
    <module>oprofile</module>
    <module>perf</module>
    <module>rpm</module>
    <module>systemtap</module>
    <module>valgrind</module>
    <module>containers</module>
    <module>vagrant</module>
    <module>releng</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho-version}</version>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <resolver>p2</resolver>
          <includePackedArtifacts>true</includePackedArtifacts>
          <environments>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
          <target>
            <artifact>
              <groupId>org.eclipse.linuxtools</groupId>
              <artifactId>org.eclipse.linuxtools.target</artifactId>
              <classifier>${target-platform}</classifier>
              <version>1.0.0</version>
            </artifact>
          </target>
        </configuration>
      </plugin>
      <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-source-feature-plugin</artifactId>
          <version>${tycho-extras-version}</version>
          <configuration>
            <includeBinaryFeature>false</includeBinaryFeature>
          </configuration>
          <executions>
            <execution>
              <id>source-feature</id>
              <phase>package</phase>
              <goals>
                <goal>source-feature</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
	<plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-source-plugin</artifactId>
          <version>${tycho-version}</version>
          <executions>
            <execution>
              <id>plugin-source</id>
              <goals>
                <goal>plugin-source</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
       <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.4</version>
        <executions>
          <execution>
           <id>pre-test</id>
           <goals>
             <goal>prepare-agent</goal>
           </goals>
	   <configuration>
              <!-- Where to put jacoco coverage report -->
              <destFile>${sonar.jacoco.reportPath}</destFile>
              <includes>
                <include>org.eclipse.linuxtools.*</include>
              </includes>
              <append>true</append>
            </configuration>
          </execution>
          <execution>
            <id>post-test</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>report</goal>
            </goals>
            <configuration>
              <dataFile>${sonar.jacoco.reportPath}</dataFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <encoding>UTF-8</encoding>
            <compilerArguments>
              <properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
            </compilerArguments>
          </configuration>
	 </plugin>
	<plugin>
	  <groupId>org.eclipse.tycho</groupId>
	  <artifactId>tycho-surefire-plugin</artifactId>
	  <version>${tycho-version}</version>
	  <configuration>
	    <useUIHarness>true</useUIHarness>
	    <useUIThread>true</useUIThread>
            <dependencies>
               <dependency>
                 <type>p2-installable-unit</type>
                 <artifactId>org.eclipse.platform.feature.group</artifactId>
                 <version>${sdk-version}</version>
               </dependency>
            </dependencies>
            <product>org.eclipse.platform.ide</product>
 	    <argLine>${tycho.testArgLine}</argLine>
	  </configuration>
	</plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-versions-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
	<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.1.0</version>
          <configuration>
            <encoding>ISO-8859-1</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
	<plugin>
	  <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
	  <version>3.1.1</version>
          <configuration>
            <excludePackageNames>org.eclipse.linuxtools.internal.*:*.test*:org.eclipse.linuxtools.docker.reddeer*</excludePackageNames>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
