<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright (c) 2018 Obeo.
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
https://www.eclipse.org/legal/epl-2.0/

Contributors:
    Obeo - initial API and 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>

  <parent>
    <groupId>org.eclipse.sirius</groupId>
    <artifactId>sirius-parent</artifactId>
    <version>6.3.2-SNAPSHOT</version>
    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
  </parent>

  <artifactId>org.eclipse.sirius.server.product</artifactId>
  <packaging>eclipse-repository</packaging>

  <properties>
    <product-id>org.eclipse.sirius.server.product</product-id>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-director-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
          <execution>
            <!-- install the product for all configured os/ws/arch environments 
              using p2 director -->
            <id>materialize-products</id>
            <goals>
              <goal>materialize-products</goal>
            </goals>
          </execution>
          <execution>
            <!-- (optional) create product zips (one per os/ws/arch) -->
            <id>archive-products</id>
            <goals>
              <goal>archive-products</goal>
            </goals>
          </execution>
        </executions>
        <!-- (optional) customize the root folder name of the product zip -->
        <configuration>
          <products>
            <product>
              <id>${product-id}</id>
              <rootFolder>sirius-server</rootFolder>
              <rootFolders>
              	<macosx>sirius-server.app</macosx>
              </rootFolders>
              <archiveFileName>sirius-server</archiveFileName>
            </product>
          </products>
        </configuration>
      </plugin>
      <!-- workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=349421 -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/products/${product-id}/icons/</outputDirectory>
              <nonFilteredFileExtensions>
                <nonFilteredFileExtension>ico</nonFilteredFileExtension>
                <nonFilteredFileExtension>xpm</nonFilteredFileExtension>
                <nonFilteredFileExtension>icns</nonFilteredFileExtension>
                <nonFilteredFileExtension>png</nonFilteredFileExtension>
                <nonFilteredFileExtension>gif</nonFilteredFileExtension>
                <nonFilteredFileExtension>bmp</nonFilteredFileExtension>
              </nonFilteredFileExtensions>
              <resources>
                <resource>
                  <directory>./icons</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

</project>
