<?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.dltk.javascript</groupId>
  	<artifactId>javascript.tests</artifactId>
  	<version>5.11.0-SNAPSHOT</version>
  	<relativePath>../pom.xml</relativePath>
  </parent>
  <artifactId>org.eclipse.dltk.javascript.ui.tests</artifactId>
  <packaging>eclipse-test-plugin</packaging>
  <properties>
    <ui.test.vmargs></ui.test.vmargs>
  </properties>
  <profiles>
	  <profile>
		  <id>macosx</id>
		  <activation>
			  <os>
				  <name>mac os x</name>
				  <family>mac</family>
			  </os>
		  </activation>
		  <properties>
			  <ui.test.vmargs>-XstartOnFirstThread</ui.test.vmargs>
		  </properties>
	  </profile>
 </profiles>

  <build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<target>
						<artifact>
							<groupId>org.eclipse.dltk.core</groupId>
							<artifactId>org.eclipse.dltk.core.targetplatform</artifactId>
							<version>${project.version}</version>
						</artifact>
					</target>
				</configuration>
			</plugin>		
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<useUIHarness>true</useUIHarness>
					<argLine>${ui.test.vmargs} ${tycho.testArgLine}</argLine>
					<dependencies>
						<dependency>
							<type>p2-installable-unit</type>
							<artifactId>org.eclipse.platform.feature.group</artifactId>
						</dependency>
					</dependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
