<?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>
	<groupId>org.eclipse.viatra.examples.cps</groupId>
	<artifactId>org.eclipse.viatra.examples.cps.parent</artifactId>
	<version>2.9.0-SNAPSHOT</version>
	<name>CPS Demonstrator</name>
	<url></url>
	<packaging>pom</packaging>
	<modules>
		<!-- Target platform -->
		<module>releng/org.eclipse.viatra.examples.cps.target</module>

		<!-- Domains -->
		<module>releng/org.eclipse.viatra.examples.cps.domain.parent</module>

		<!-- Generator -->
		<module>generator/org.eclipse.viatra.examples.cps.generator</module>
		<module>generator/org.eclipse.viatra.examples.cps.planexecutor</module>

		<!-- Queries -->
		<module>queries/org.eclipse.viatra.examples.cps.queries</module>

		<!-- Addons -->
		<module>addons/org.eclipse.viatra.examples.cps.queries.validation</module>
		

		<!-- M2M Transformations -->
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.launcher</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.util</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.simple</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.optimized</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.eiq</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.viatra</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.aggr</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.viatra</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.puregratra</module>

		<!-- M2T Transformations -->
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2t</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.m2t.jdt</module>
		
		<!-- Serializers -->
		<module>transformations/org.eclipse.viatra.examples.cps.xform.serializer</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.serializer.eclipse</module>
		<module>transformations/org.eclipse.viatra.examples.cps.xform.serializer.javaio</module>
		
		<!--  Application -->
		<module>application/org.eclipse.viatra.examples.cps.application.ui</module>
		<module>releng/org.eclipse.viatra.examples.cps.application.dependencies.feature</module>
		<module>releng/org.eclipse.viatra.examples.cps.application.feature</module>
		<module>releng/org.eclipse.viatra.examples.cps.application.product</module>
		
		<!-- Tests -->
		<module>tests/org.eclipse.viatra.examples.cps.generator.tests</module>
		<module>tests/org.eclipse.viatra.examples.cps.tests.util</module>
		<module>tests/org.eclipse.viatra.examples.cps.xform.m2m.tests</module>
		<module>tests/org.eclipse.viatra.examples.cps.xform.m2t.tests</module>
		<module>tests/org.eclipse.viatra.examples.cps.xform.serializer.test</module>
		
		<!--  p2 repository -->
		<module>releng/org.eclipse.viatra.examples.cps.update</module>
	</modules>
	<profiles>
		<profile>
			<id>cps.view.gef5</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<modules>
				<module>addons/org.eclipse.viatra.examples.cps.view</module>
			</modules>
		</profile>
	</profiles>
	<properties>
		<tycho.version>1.7.0</tycho.version>
		<xtend.compiler.version>2.22.0</xtend.compiler.version>
		<viatra.repository.url>http://download.eclipse.org/viatra/updates/integration/latest</viatra.repository.url>
		<viatra.compiler.version>2.9.0-SNAPSHOT</viatra.compiler.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
	</properties>
	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-packaging-plugin</artifactId>
				<version>${tycho.version}</version>
				<configuration>
					<strictBinIncludes>false</strictBinIncludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-maven-plugin</artifactId>
				<version>${tycho.version}</version>
				<extensions>true</extensions>
			</plugin>
			<plugin>
		        <artifactId>maven-toolchains-plugin</artifactId>
		    </plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho.version}</version>
				<configuration>
					<target>
						<artifact>
							<groupId>org.eclipse.viatra.examples.cps</groupId>
							<artifactId>org.eclipse.viatra.examples.cps.target</artifactId>
							<version>${project.version}</version>
							<relativePath>releng/org.eclipse.viatra.examples.cps.target/pom.xml</relativePath>
						</artifact>
					</target>
					<environments>
						<environment>
							<os>win32</os>
							<ws>win32</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>linux</os>
							<ws>gtk</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>macosx</os>
							<ws>cocoa</ws>
							<arch>x86_64</arch>
						</environment>
					</environments>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho.version}</version>
				<configuration>
					<excludes>
		            	<exclude>**/IntegrationTest*.java</exclude>
						<exclude>**/integration/*.java</exclude>
						<exclude>**/scenarios/*.java</exclude>
						<exclude>**/queries/*.java</exclude>
		            </excludes>
		            <failIfNoTests>false</failIfNoTests>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-toolchains-plugin</artifactId>
                    <version>1.1</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>toolchain</goal>
                            </goals>
                            <configuration>
                             <toolchains>
                                 <jdk>
                                     <id>JavaSE-${java.version}</id>
                                 </jdk>
                             </toolchains>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
			     <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-compiler-plugin</artifactId>
                    <version>${tycho.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <!-- add JavaFX to classpath (jfxswt.jar for Java 8) -->
                        <extraClasspathElements>
                            <extraClasspathElement>
                                <groupId>com.oracle</groupId>
                                <artifactId>javafxswt</artifactId>
                                <version>8.0.0-SNAPSHOT</version>
                                <systemPath>${java.home}/lib/jfxswt.jar</systemPath>
                                <scope>system</scope>
                            </extraClasspathElement>
                        </extraClasspathElements>
                        <useJDK>BREE</useJDK>
                        <useProjectSettings>true</useProjectSettings>
                        <excludeResources>
                            <excludeResource>**/.gitignore</excludeResource>
                        </excludeResources>
                        <compilerArgs>
                          <compilerArg>-err:-forbidden</compilerArg>
                        </compilerArgs>
                    </configuration>
                </plugin>
				<plugin>
					<groupId>org.eclipse.xtend</groupId>
					<artifactId>xtend-maven-plugin</artifactId>
					<version>${xtend.compiler.version}</version>
					<configuration>
						<!-- need to prefix by basedir to generate to currently built module -->
						<outputDirectory>${basedir}/xtend-gen</outputDirectory>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>2.5</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<repositories>
		<repository>
			<id>viatra.update</id>
			<layout>p2</layout>
			<url>${viatra.repository.url}</url>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>viatra-repository</id>
			<releases>
			     <enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
			<url>https://repo.eclipse.org/content/groups/viatra/</url>
		</pluginRepository>
	</pluginRepositories>
</project>
