<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.eclipse.blockchain</groupId>
    <artifactId>org.eclipse.blockchain.releng</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <tycho-version>1.6.0</tycho-version>
        <eclipse-repo.url>http://download.eclipse.org/releases/photon</eclipse-repo.url>
        <eclipse-orbit.url>http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository</eclipse-orbit.url>
        <xtext-url>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.15.0</xtext-url>
        <yakindu-url>http://updates.yakindu.com/solidity/releases</yakindu-url>
    </properties>

    <build>
        <plugins>
            <!-- Java compilation -->
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho-version}</version>
                <extensions>true</extensions>
            </plugin>
            <!-- Packaging -->
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-packaging-plugin</artifactId>
                <version>${tycho-version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <id>package-feature</id>
                        <configuration>
                            <finalName>${project.artifactId}_${unqualifiedVersion}.${buildQualifier}</finalName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- platform specification -->
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho-version}</version>
                
                <configuration>
                    <pomDependencies>consider</pomDependencies>
                    <environments>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>macosx</os>
                            <ws>cocoa</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>

        </plugins>
    </build>

    <repositories>
        <repository>
            <id>eclipse-repo</id>
            <url>${eclipse-repo.url}</url>
            <layout>p2</layout>
        </repository>
        <repository>
            <id>eclipse-orbit</id>
            <url>${eclipse-orbit.url}</url>
            <layout>p2</layout>
        </repository>
        <repository>
            <id>xtext-2.15</id>
            <url>${xtext-url}</url>
            <layout>p2</layout>
        </repository>
        <repository>
            <id>yakindu</id>
            <url>${yakindu-url}</url>
            <layout>p2</layout>
        </repository>
    </repositories>

</project>