<?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>
        <artifactId>org.eclipse.viatra.parent.core</artifactId>
        <groupId>org.eclipse.viatra</groupId>
        <version>1.3.1-SNAPSHOT</version>
        <relativePath>../../../releng/org.eclipse.viatra.parent.core/pom.xml</relativePath>
    </parent>
	<artifactId>org.eclipse.viatra.query.runtime.rete.recipes</artifactId>
	<packaging>eclipse-plugin</packaging>
    <properties>
        <emf.workspace.location>${project.basedir}/../../target/workspace</emf.workspace.location>
    </properties>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
				<version>2.5</version>
				<executions>
					<execution>
						<phase>clean</phase>
						<goals>
							<goal>clean</goal>
						</goals>
						<configuration>
							<filesets>
								<fileset>
                                    <directory>src-gen</directory>
                                    <excludes>
                                        <exclude>.gitignore</exclude>
                                    </excludes>
								</fileset>
								<fileset>
									<directory>xtend-gen</directory>
                                    <excludes>
                                        <exclude>.gitignore</exclude>
                                    </excludes>
								</fileset>
							</filesets>
						</configuration>
					</execution>
				</executions>
			</plugin>
            <plugin>
                <groupId>org.eclipse.tycho.extras</groupId>
                <artifactId>tycho-eclipserun-plugin</artifactId>
                <version>${tycho.version}</version>
                <configuration>
                    <appArgLine>-data ${emf.workspace.location} -application org.eclipse.emf.codegen.ecore.Generator -projects ${project.basedir} -model ${project.basedir}/model/rete-recipes.genmodel ${project.basedir}</appArgLine>
                    <dependencies>
                        <dependency>
                            <artifactId>org.eclipse.emf.codegen.ecore</artifactId>
                            <type>eclipse-plugin</type>
                        </dependency>
                    </dependencies>
                    <repositories>
                        <repository>
                            <id>indigo</id>
                            <layout>p2</layout>
                            <url>http://download.eclipse.org/releases/mars</url>
                        </repository>
                    </repositories>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>eclipse-run</goal>
                        </goals>
                        <phase>generate-sources</phase>
                    </execution>
                </executions>
            </plugin>
			<plugin>
				<groupId>org.eclipse.xtend</groupId>
				<artifactId>xtend-maven-plugin</artifactId>
				<version>${xtend.compiler.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>compile</goal>
							<goal>testCompile</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
