<?xml version="1.0" encoding="UTF-8" standalone="no"?><!--
	Copyright (c) 2016 Chalmers | University of Gothenburg, rt-labs and others.
	All rights reserved. This program and the accompanying materials
	are made available under the terms of the Eclipse Public License v1.0
	which accompanies this distribution, and is available at
	http://www.eclipse.org/legal/epl-v10.html

	Contributors:
		Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
--><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.capra</groupId>
	<artifactId>parent</artifactId>
	<version>0.8.1-SNAPSHOT</version>
	<packaging>pom</packaging>
    <name>Capra</name>

	<modules>
		<module>bundles/org.eclipse.capra.core</module>
		<module>bundles/org.eclipse.capra.documentation</module>
		<module>bundles/org.eclipse.capra.generic.persistence</module>
		<module>bundles/org.eclipse.capra.generic.priority</module>
		<module>bundles/org.eclipse.capra.generic.tracemodel</module>
		<module>bundles/org.eclipse.capra.generic.artifactmodel</module>
		<module>bundles/org.eclipse.capra.handler.app4mc</module>
		<module>bundles/org.eclipse.capra.handler.cdt</module>
		<module>bundles/org.eclipse.capra.handler.emf</module>
		<module>bundles/org.eclipse.capra.handler.file</module>
		<module>bundles/org.eclipse.capra.handler.gef</module>
		<module>bundles/org.eclipse.capra.handler.jdt</module>
		<module>bundles/org.eclipse.capra.handler.hudson</module>
		<module>bundles/org.eclipse.capra.handler.office</module>
		<module>bundles/org.eclipse.capra.handler.reqIf</module>
		<module>bundles/org.eclipse.capra.handler.marker</module>
		<module>bundles/org.eclipse.capra.handler.mylyn</module>
		<module>bundles/org.eclipse.capra.handler.papyrus</module>
		<module>bundles/org.eclipse.capra.handler.php</module>
		<module>bundles/org.eclipse.capra.handler.uml</module>
		<module>bundles/org.eclipse.capra.handler.featureide</module>
		<module>bundles/org.eclipse.capra.ui</module>
		<module>bundles/org.eclipse.capra.ui.notification</module>
		<module>bundles/org.eclipse.capra.ui.plantuml</module>
		<module>bundles/org.eclipse.capra.ui.cdt</module>
		<module>bundles/org.eclipse.capra.ui.jdt</module>
		<module>bundles/org.eclipse.capra.ui.office</module>
		<module>bundles/org.eclipse.capra.ui.drive</module>
		<module>bundles/org.eclipse.capra.ui.zest</module>
		<module>bundles/org.eclipse.capra.ui.reqif</module>
		<module>bundles/org.eclipse.capra.ui.xtext</module>
		<module>bundles/org.eclipse.capra.ui.sunburst</module>
		<module>bundles/org.eclipse.capra.ui.matrix</module>

		<!-- Tests -->
		<module>tests/org.eclipse.capra.testsuite</module>
		<module>tests/org.eclipse.capra.handler.cdt.tests</module>
		<module>tests/org.eclipse.capra.handler.jdt.tests</module>
		<module>tests/org.eclipse.capra.handler.uml.tests</module>
		<module>tests/org.eclipse.capra.handler.featureide.tests</module>

		<!-- Branding -->
		<module>releng/org.eclipse.capra.branding</module>

		<!-- Features -->
		<module>features/org.eclipse.capra.feature</module>
		<module>features/org.eclipse.capra.core.feature</module>
		<module>features/org.eclipse.capra.generic.feature</module>
		<module>features/org.eclipse.capra.handler.app4mc.feature</module>
		<module>features/org.eclipse.capra.handler.cdt.feature</module>
		<module>features/org.eclipse.capra.handler.hudson.feature</module>
		<module>features/org.eclipse.capra.handler.office.feature</module>
		<module>features/org.eclipse.capra.handler.jdt.feature</module>
		<module>features/org.eclipse.capra.handler.reqIf.feature</module>
		<module>features/org.eclipse.capra.handler.papyrus.feature</module>
		<module>features/org.eclipse.capra.handler.php.feature</module>
		<module>features/org.eclipse.capra.handler.featureide.feature</module>
		<module>features/org.eclipse.capra.ui.feature</module>
		<module>features/org.eclipse.capra.ui.plantuml.feature</module>
		<module>features/org.eclipse.capra.ui.zest.feature</module>
		<module>features/org.eclipse.capra.ui.xtext.feature</module>
		<module>features/org.eclipse.capra.ui.sunburst.feature</module>
		<module>features/org.eclipse.capra.ui.matrix.feature</module>

		<!-- Releng -->
		<module>releng/org.eclipse.capra.releng.target</module>
		<module>releng/org.eclipse.capra.releng.p2</module>

	</modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<tycho-version>1.3.0</tycho-version>
		<org.jboss.tools.tycho-plugins.version>1.3.0</org.jboss.tools.tycho-plugins.version>
	</properties>

	<profiles>
		<profile>
			<id>macosx-jvm-flags</id>
			<activation>
				<os>
					<family>mac</family>
				</os>
			</activation>
			<properties>
				<os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
			</properties>
		</profile>
	</profiles>

	<repositories>
		<repository>
			<id>license-feature</id>
			<url>http://download.eclipse.org/cbi/updates/license/</url>
			<layout>p2</layout>
		</repository>
		<repository>
			<id>jboss</id>
			<url>https://repository.jboss.org/nexus/content/repositories/public/</url>
			<layout>default</layout>
		</repository>
	</repositories>

	 <scm>
       <connection>scm:git:https://git.eclipse.org/r/capra/org.eclipse.capra.git</connection>
       <developerConnection>scm:git:https://git.eclipse.org/r/capra/org.eclipse.capra.git</developerConnection>
       <tag>0.7.0</tag>
   </scm>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-maven-plugin</artifactId>
				<version>${tycho-version}</version>
				<extensions>true</extensions>
			</plugin>

			<!-- Only required if tests need UI -->
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<useUIHarness>true</useUIHarness>
					<useUIThread>true</useUIThread>
					<argLine>${os-jvm-flags}</argLine>
					<dependencies>
						<dependency>
							<type>eclipse-plugin</type>
							<artifactId>org.eclipse.equinox.event</artifactId>
							<version>0.0.0</version>
						</dependency>
					</dependencies>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<target>
						<artifact>
							<groupId>org.eclipse.capra</groupId>
							<artifactId>org.eclipse.capra.releng.target</artifactId>
							<version>0.8.1-SNAPSHOT</version>
						</artifact>
					</target>
					<environments>
						<environment>
							<os>win32</os>
							<ws>win32</ws>
							<arch>x86</arch>
						</environment>
						<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>

			<plugin>
				<groupId>com.itemis.maven.plugins</groupId>
				<artifactId>unleash-maven-plugin</artifactId>
				<version>2.10.0</version>
				<dependencies>
					<dependency>
						<groupId>com.itemis.maven.plugins</groupId>
						<artifactId>unleash-scm-provider-git</artifactId>
						<version>2.3.0</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
</project>
