<?xml version="1.0" encoding="UTF-8"?>
<!--#======================================================================= -->
<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany). -->
<!--# All rights reserved. This program and the accompanying materials -->
<!--# are made available under the terms of the Eclipse Public License 2.0  -->
<!--# which accompanies this distribution, and is available at -->
<!--# https://www.eclipse.org/legal/epl-2.0/    -->
<!--#                                           -->
<!--# SPDX-License-Identifier: EPL-2.0          -->
<!--# -->
<!--# Contributors: -->
<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.eclipse.osbp.releng.maven</groupId>
		<artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
		<version>0.9.0-SNAPSHOT</version>
		<relativePath/>
	</parent>

	<groupId>org.eclipse.osbp.xtext.functionlibrarydsl</groupId>
	<artifactId>org.eclipse.osbp.xtext.functionlibrarydsl.aggregator</artifactId>
	<version>0.9.0-SNAPSHOT</version>
	<packaging>pom</packaging>

	<url>${osbp.site.repository.url}</url>
	<scm>
		<url>${osbp.scm.url}</url>
		<connection>${osbp.scm.connection}</connection>
		<developerConnection>${osbp.scm.connection.dev}</developerConnection>
		<tag>HEAD</tag>
	</scm>
	<distributionManagement>
		<site>
			<id>gh-pages</id>
			<name>OSBP GitHub Pages</name>
			<url>${distribution.site.url}</url>
		</site>
	</distributionManagement>

	<properties>
		<osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
	</properties>

	<modules>
		<module>org.eclipse.osbp.xtext.functionlibrarydsl</module>
		<module>org.eclipse.osbp.xtext.functionlibrarydsl.provider</module>
		<module>org.eclipse.osbp.xtext.functionlibrarydsl.tests</module>
		<module>org.eclipse.osbp.xtext.functionlibrarydsl.ide</module>
		<module>org.eclipse.osbp.xtext.functionlibrarydsl.ui</module>
		<module>org.eclipse.osbp.xtext.functionlibrarydsl.feature</module>
	</modules>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<configuration>
						<skip>true</skip>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>target-platform-configuration</artifactId>
					<version>${tycho-version}</version>
					<configuration>
						<resolver>p2</resolver>
						<pomDependencies>consider</pomDependencies>
						<environments>
							<environment>
								<os>win32</os>
								<ws>win32</ws>
								<arch>x86_64</arch>
							</environment>
							<environment>
								<os>linux</os>
								<ws>gtk</ws>
								<arch>x86</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>
			</plugins>
		</pluginManagement>
	</build>
    <dependencies>
		<dependency>
			<groupId>org.eclipse.osbp.dependencies</groupId>
			<artifactId>
				org.eclipse.osbp.dependencies.bundle.activemq.all.osgi
			</artifactId>
			<version>5.14.5-SNAPSHOT</version>
		</dependency>
    </dependencies>
</project>
