<?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.incubation</artifactId>
        <groupId>org.eclipse.viatra</groupId>
        <version>0.13.1-SNAPSHOT</version>
        <relativePath>../../../releng/org.eclipse.viatra.parent.incubation/pom.xml</relativePath>
    </parent>
	<artifactId>org.eclipse.viatra.addon.viewers.runtime</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><!-- EMF generated code -->
									<directory>emf-gen</directory>
                                                        		<excludes>
                                                                		<exclude>.gitignore</exclude>
                                                        		</excludes>
								</fileset>
								<fileset><!--  EMF generator workspace -->
									<directory>${emf.workspace.location}</directory>
                                                        		<excludes>
                                                                		<exclude>.gitignore</exclude>
                                                        		</excludes>
								</fileset>
								<fileset><!--  VIATRA Query generated code -->
									<directory>src-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/notation.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.viatra</groupId>
				<artifactId>viatra-maven-plugin</artifactId>
				<version>${viatra.main.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<outputDirectory>src-gen</outputDirectory>
					<metamodels>
						<metamodel>
							<genmodelUri>model/notation.genmodel</genmodelUri>
						</metamodel>
					</metamodels>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
