<?xml version="1.0" encoding="UTF-8"?>

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

    <artifactId>org.eclipse.tracecompass.incubator.rcp.product</artifactId>
    <packaging>eclipse-repository</packaging>

    <name>Trace Compass Incubator RCP Product</name>

    <properties>
        <productId>org.eclipse.tracecompass.incubator.rcp</productId>
        <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
        <archiveFileName>trace-compass-${unqualifiedVersion}-${build.timestamp}</archiveFileName>
        <rootFolder>trace-compass</rootFolder>
        <!-- for MacOSX, make sure you use a folder ending with .app , see bug 463670 -->
        <rootFolderMac>${rootFolder}.app</rootFolderMac>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-director-plugin</artifactId>
                <version>${tycho-version}</version>
                <executions>
                    <execution>
                        <id>materialize-products</id>
                        <goals>
                            <goal>materialize-products</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>archive-products</id>
                        <goals>
                            <goal>archive-products</goal>
                        </goals>
                        <configuration>
                            <formats>
                                <linux>tar.gz</linux>
                                <macosx>tar.gz</macosx>
                                <solaris>zip</solaris>
                                <win32>zip</win32>
                            </formats>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <products>
                        <product>
                            <archiveFileName>${archiveFileName}</archiveFileName>
                            <id>${productId}</id>
                            <rootFolder>${rootFolder}</rootFolder>
                            <rootFolders>
                                <macosx>${rootFolderMac}</macosx>
                            </rootFolders>
                        </product>
                    </products>
                    <source>repository</source>
                </configuration>
            </plugin>
        </plugins>
    </build>

  <profiles>
    <profile>
      <id>sign-update-site</id>
      <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-director-plugin</artifactId>
                <version>${tycho-version}</version>
                <executions>
                    <execution>
                        <id>materialize-products</id>
                        <goals>
                            <goal>materialize-products</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>archive-products</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>archive-products</goal>
                        </goals>
                        <configuration>
                            <formats>
                                <linux>tar.gz</linux>
                                <macosx>tar.gz</macosx>
                                <solaris>zip</solaris>
                                <win32>zip</win32>
                            </formats>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <products>
                        <product>
                            <archiveFileName>${archiveFileName}</archiveFileName>
                            <id>${productId}</id>
                            <rootFolder>${rootFolder}</rootFolder>
                            <rootFolders>
                                <macosx>${rootFolderMac}</macosx>
                            </rootFolders>
                        </product>
                    </products>
                    <source>repository</source>
                </configuration>
            </plugin>
<!--
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-macsigner-plugin</artifactId>
            <version>${cbi-plugins.version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>sign</goal>
                </goals>
                <configuration>
                  <signFiles>
                    <signFile>${project.build.directory}/products/${productId}/macosx/cocoa/x86_64/${rootFolderMac}</signFile>
                  </signFiles>
                </configuration>
              </execution>
            </executions>
          </plugin>
 -->
        </plugins>
      </build>
    </profile>
  <!-- Deploy RCP builds and update site to the downloads area -->
    <profile>
      <id>deploy-rcp</id>
      <properties>
        <rcpDestination>/home/data/httpd/download.eclipse.org/tracecompass.incubator/master/rcp/</rcpDestination>
        <rcpSiteDestination>/home/data/httpd/download.eclipse.org/tracecompass.incubator/master/rcp-repository/</rcpSiteDestination>
      </properties>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>deploy</id>
                <phase>install</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <!-- Cleanup the "rcp" destination, and copy over the new archives -->
                    <delete includeemptydirs="false">
                      <fileset dir="${rcpDestination}">
                        <include name="*.tar.gz" />
                        <include name="*.zip" />
                      </fileset>
                    </delete>
                    <copy includeemptydirs="false" todir="${rcpDestination}">
                      <fileset dir="target/products">
                        <include name="trace-compass-*" />
                      </fileset>
                    </copy>

                    <!-- Cleanup the "rcp-repository" update site, and copy over the new one -->
                    <delete includeemptydirs="false">
                      <fileset
                        dir="${rcpSiteDestination}">
                        <include name="**" />
                      </fileset>
                    </delete>
                    <copy includeemptydirs="false" todir="${rcpSiteDestination}">
                      <fileset dir="target/repository">
                        <include name="**" />
                      </fileset>
                    </copy>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>build-one-rcp</id>
        <build>
          <plugins>
            <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>target-platform-configuration</artifactId>
              <configuration>
                <environments>
                  <environment>
                    <os>linux</os>
                    <ws>gtk</ws>
                    <arch>x86_64</arch>
                  </environment>
                </environments>
              </configuration>
            </plugin>
         </plugins>
        </build>
      </profile>
    </profiles>
  <groupId>org.eclipse.tracecompass.incubator</groupId>
</project>
