<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2017 Willink Transformations and others.

   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v2.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v20.html
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <prerequisites>
    <maven>3.0</maven>
  </prerequisites>
  <groupId>org.eclipse.qvtd</groupId>
  <artifactId>org.eclipse.qvtd.releng.tycho</artifactId>
  <version>0.25.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <licenses>
    <license>
      <name>Eclipse Public License v2.0</name>
      <comments>
        All rights reserved.

        This program and the accompanying materials are made
        available under the terms of the Eclipse Public License v2.0
        which accompanies this distribution, and is available at
        http://www.eclipse.org/legal/epl-v10.htm
      </comments>
    </license>
  </licenses>
  <properties>
    <project.buildId>org.eclipse.qvtd</project.buildId>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <buildTimestamp>${maven.build.timestamp}</buildTimestamp>
    <buildId>${buildType}${buildTimestamp}</buildId>
    <targetPlatform>targetPlatforms/unspecified</targetPlatform>

    <tycho.scmUrl>scm:git:https://git.eclipse.org/c/mmt/org.eclipse.qvtd.git</tycho.scmUrl>
    <!--executionEnvironment>J2SE-1.5</executionEnvironment>
    <source-java-version>1.5</source-java-version>
    <target-java-version>${source-java-version}</target-java-version-->
    <java-source-encoding>UTF-8</java-source-encoding>
    <resource-encoding>UTF-8</resource-encoding>
    <os-jvm-flags/>

    <!-- plugin versions -->
    <!-- use the "Build QVTd - Versions" launch to check for the latest -->
    <eclipse-jarsigner-version>1.1.2</eclipse-jarsigner-version>
    <exec-maven-version>3.0.0</exec-maven-version>
    <findbugs-maven-version>3.0.0</findbugs-maven-version>
    <jacoco-maven-version>0.8.17</jacoco-maven-version>
    <maven-antrun-version>3.0.0</maven-antrun-version>
    <maven-assembly-version>3.3.0</maven-assembly-version>
    <maven-checkstyle-version>3.1.1</maven-checkstyle-version>
    <maven-clean-version>3.1.0</maven-clean-version>
    <maven-compiler-version>3.8.1</maven-compiler-version>
    <maven-deploy-version>3.0.0-M1</maven-deploy-version>
    <maven-enforcer-version>3.0.0-M3</maven-enforcer-version>
    <maven-install-version>3.0.0-M1</maven-install-version>
    <maven-jar-version>3.2.0</maven-jar-version>
    <maven-javadoc-version>3.2.0</maven-javadoc-version>
    <maven-jxr-version>3.0.0</maven-jxr-version>
    <maven-pmd-version>3.13.0</maven-pmd-version>
    <maven-resources-version>3.2.0</maven-resources-version>
    <maven-site-version>3.9.1</maven-site-version>
    <maven-surefire-version>3.0.0-M5</maven-surefire-version>
    <tycho-version>1.6.0</tycho-version>
    <tycho-extras-version>${tycho-version}</tycho-extras-version>
    
    <BUILD_ALIAS></BUILD_ALIAS>
  </properties>
  
  <modules>
   <module>../../doc</module>
   <module>../../examples</module>
   <module>../../features</module>
   <module>../../plugins</module>   
   <module>../../releng</module>
   <module>../../tests</module>
  </modules>

  <build>
    <!-- This is for checkstyle and PMD -->
    <sourceDirectory>src</sourceDirectory>
    
    <!-- See Bug 526404 This enables maven-surefire-plugin to do standalone tests AND tycho-surefire-plugin to do plugin tests -->
    <testOutputDirectory>${project.build.directory}/classes</testOutputDirectory>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven-enforcer-version}</version>
        <executions>
          <execution>
            <id>enforce-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.6.3</version>
                </requireMavenVersion>
                <!--requireJavaVersion>
                  <version>1.5</version>
                </requireJavaVersion-->
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <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>
        <configuration>
          <includePackedArtifacts>true</includePackedArtifacts>
          <resolver>p2</resolver>
          <!--executionEnvironment>JavaSE-1.8</executionEnvironment-->
          <target>
            <artifact>
              <groupId>org.eclipse.qvtd</groupId>
              <artifactId>org.eclipse.qvtd.releng.tycho</artifactId>
              <version>0.25.0-SNAPSHOT</version>
              <classifier>${targetPlatform}</classifier>
            </artifact>
          </target>
          <dependency-resolution>
            <extraRequirements>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.apache.ant</id>
                <versionRange>0.0.0</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.osgi.compatibility.state</id>
                <versionRange>[1.1.0,2.0.0)</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.jdt.annotation</id>
                <versionRange>[2.0.0,3.0.0)</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>javax.annotation</id>
                <versionRange>[1.0.0,2.0.0)</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.xtext.logging</id>
                <versionRange>[1.0.0,2.0.0)</versionRange>
              </requirement>
            </extraRequirements>
          </dependency-resolution>
          <environments>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>macosx</os>
              <ws>cocoa</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>

      <!-- Generate source bundles (exclude target so we don't enter
           an infinite loop for binary-only plugins, which have itself
           as the source). -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-source-feature-plugin</artifactId>
        <version>${tycho-extras-version}</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>source-feature</id>
            <phase>package</phase>
            <goals>
              <goal>source-feature</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-maven-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <format>'v'yyyyMMdd'-'HHmm</format>
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho-extras-version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration><!-- Workaround Bug 526011 -->
            <compilerArgs>
              <arg>-annotationpath</arg>
              <arg>${project.basedir}/../../plugins/org.eclipse.qvtd.pivot.qvtbase/annotations</arg>
            </compilerArgs>
          </configuration>
          <!--dependencies>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>org.eclipse.jdt.core</artifactId>
              <version>${cbi-jdt-version}</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>org.eclipse.jdt.compiler.apt</artifactId>
              <version>${cbi-jdt-apt-version}</version>
            </dependency>
          </dependencies-->
          <!--configuration>
            <encoding>${java-source-encoding}</encoding>
            <source>${source-java-version}</source>
            <target>${target-java-version}</target>
            <showWarnings>true</showWarnings>
          </configuration-->
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho-version}</version>
          <executions>
            <execution>
              <id>attached-p2-metadata</id>
              <phase>package</phase>
              <goals>
                <goal>p2-metadata</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
           <artifactId>tycho-surefire-plugin</artifactId>
           <version>${tycho-version}</version>
           <!--configuration>
             <argLine>${tycho.testArgLine} -Xms40m -Xmx1G ${os-jvm-flags}</argLine>
             <failIfNoTests>false</failIfNoTests>
           </configuration-->
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-publisher-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-repository-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-extras-version}</version>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho-extras-version}</version>
        </plugin>
        <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${eclipse-jarsigner-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-version}</version>
          <configuration>
            <encoding>${resource-encoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven-antrun-version}</version>
        </plugin>
        <!--plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs-maven-version}</version>
        </plugin-->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${maven-pmd-version}</version>
          <configuration>
            <sourceEncoding>${java-source-encoding}</sourceEncoding>
            <targetJdk>${target-java-version}</targetJdk>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-version}</version>
          <configuration>
            <encoding>${java-source-encoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${exec-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-version}</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven-clean-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven-install-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven-site-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit4</artifactId>
              <version>${maven-surefire-version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${maven-jxr-version}</version>
        </plugin>
        <!--plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.3</version>
          <configuration>
            <sourceFileIncludes>
              <sourceFileInclude>org/eclipse/m2m/qvt/oml/**/*.java</sourceFileInclude>
            </sourceFileIncludes>
            <doctitle>QVTd Interim API</doctitle>
          </configuration>
        </plugin-->
      </plugins>
    </pluginManagement>
  </build>
  
  <profiles>
    <!-- Target platforms are located in org.eclipse.qvtd.releng.tycho/targetPlatforms. -->
    <profile>
      <id>nightly</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>N</buildType>
        <targetPlatform>targetPlatforms/nightly</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>interim</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>I</buildType>
        <targetPlatform>targetPlatforms/interim</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>stable</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>S</buildType>
        <targetPlatform>targetPlatforms/stable</targetPlatform>
      </properties>
      <!--properties>
        <cbi-jdt-repo.url>https://repo.eclipse.org/content/repositories/eclipse-staging/</cbi-jdt-repo.url>
        <!- - jdt.core and jdt.compiler.apt should "match", come from same build, and be signed
          by same certificate. See bug 462783. - ->
        <cbi-jdt-version>3.14.0.v20170830-0152</cbi-jdt-version>
        <cbi-jdt-apt-version>1.3.0.v20170502-0408</cbi-jdt-apt-version>
      </properties-->
    </profile>
    <profile>
      <id>release</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>R</buildType>
        <targetPlatform>targetPlatforms/stable</targetPlatform>
      </properties>
       <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-repository-plugin</artifactId>
            <configuration>
              <extraArtifactRepositoryProperties>
                <p2.statsURI>http://download.eclipse.org/stats/mmt/qvtd/updates/releases/${unqualifiedVersion}</p2.statsURI>
                <p2.mirrorsURL>http://www.eclipse.org/downloads/download.php?file=/mmt/qvtd/updates/releases/${unqualifiedVersion}&amp;format=xml</p2.mirrorsURL>
              </extraArtifactRepositoryProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>oxygen</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType></buildType>
        <targetPlatform>targetPlatforms/oxygen</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>photon</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType></buildType>
        <targetPlatform>targetPlatforms/photon</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>unstable</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType></buildType>
        <targetPlatform>targetPlatforms/unstable</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>sign</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <executions>
              <execution>
                <id>sign</id>
                <phase>package</phase>
                <configuration>
                  <retryLimit>10</retryLimit>
                </configuration>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <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>
      <pluginRepositories>
        <pluginRepository>
          <id>cbi</id>
          <url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <id>update-branding-plugins-about.mappings</id>
      <activation>
        <file>
          <exists>${basedir}/about.mappings</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <execution>
                <id>process-about.mappings</id>
                <phase>prepare-package</phase>
                <configuration>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                  <overwrite>true</overwrite>
                  <resources>
                    <resource>
                      <directory>${basedir}</directory>
                      <includes>
                        <include>about.mappings</include>
                      </includes>
                      <filtering>true</filtering>
                    </resource>
                  </resources>
                </configuration>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-packaging-plugin</artifactId>
            <configuration>
              <additionalFileSets>
                <fileSet>
                  <directory>${project.build.directory}</directory>
                  <includes>
                    <include>about.mappings</include>
                  </includes>
                </fileSet>
              </additionalFileSets>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>