<?xml version="1.0" encoding="UTF-8"?>
<!--
 #=============================================================================#
 # Copyright (c) 2018, 2019 Stephan Wahlbrink and others.
 # 
 # This program and the accompanying materials are made available under the
 # terms of the Eclipse Public License 2.0 which is available at
 # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 # which is available at https://www.apache.org/licenses/LICENSE-2.0.
 # 
 # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 # 
 # Contributors:
 #     Stephan Wahlbrink <sw@wahlbrink.eu> - 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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	
	<parent>
		<groupId>org.eclipse.statet-releng</groupId>
		<artifactId>parent</artifactId>
		<version>4.0.2.201910101100-r</version>
	</parent>
	
	<groupId>org.eclipse.statet-assemblies</groupId>
	<artifactId>org.eclipse.statet.repository</artifactId>
	<packaging>eclipse-repository</packaging>
	
	<build>
		<resources>
			<resource>
				<directory>legal-resources</directory>
			</resource>
		</resources>
		
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<configuration>
					<resolver>p2</resolver>
					<target>
						<artifact>
							<groupId>org.eclipse.statet-releng</groupId>
							<artifactId>target-eclipse.ide</artifactId>
							<version>4.0.2.201910101100-r</version>
						</artifact>
					</target>
				</configuration>
			</plugin>
			
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-p2-repository-plugin</artifactId>
				<configuration>
					<repositoryName>Eclipse StatET ${statet.version} (Target: ${statet.target.id}, Build: ${statet.build.id})</repositoryName>
					<finalName>statet-repository-${statet.target.id}-incubation-${statet.version}-${statet.build.id}</finalName>
				</configuration>
			</plugin>
		</plugins>
	</build>
	
</project>
