<?xml version="1.0" encoding="UTF-8"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.eclipse.emf.ecp</groupId>
		<artifactId>ecp-tests-parent</artifactId>
		<version>1.27.0-SNAPSHOT</version>
		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
	</parent>
	<groupId>org.eclipse.emf.ecp</groupId>
	<artifactId>org.eclipse.emfforms.ide.builder.test</artifactId>
	<version>1.27.0-SNAPSHOT</version>
	<packaging>eclipse-test-plugin</packaging>

	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<!-- We need to configure tycho to start a workbench in which the tests are run -->
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<useUIHarness>true</useUIHarness>
					<useUIThread>true</useUIThread>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<configuration>
					<dependency-resolution>
						<extraRequirements>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.emf.ecp.emfforms.sdk.feature</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
