<!--
 * Copyright (c) 2011 PetalsLink
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *  
 *   Contributors:
 *      Mickael istria (PetalsLink)
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.eclipse.gmf-tooling</groupId>
	<artifactId>features</artifactId>
	<packaging>pom</packaging>

	<parent>
		<groupId>org.eclipse.gmf-tooling</groupId>
		<artifactId>eclipse</artifactId>
		<version>3.0.0-SNAPSHOT</version>
		<relativePath>../</relativePath>
	</parent>

	<modules>
		<!-- features -->
		<module>org.eclipse.gmf.doc-feature</module>
		<!-- module>org.eclipse.gmf.europa-feature</module> 
		<module>org.eclipse.gmf.platform-feature</module>
		<module>org.eclipse.gmf.sdk.experimental.source-feature</module>
		<module>org.eclipse.gmf.sdk.experimental-feature</module-->
		<module>org.eclipse.gmf.sdk-feature</module>
		<module>org.eclipse.gmf.tooling.source-feature</module>
		<module>org.eclipse.gmf.tooling-feature</module>
		<module>org.eclipse.gmf.tooling.runtime.source-feature</module>
		<module>org.eclipse.gmf.tooling.runtime-feature</module>
		<module>org.eclipse.gmf.tooling.simplemap-feature</module>
		<module>org.eclipse.gmf.tooling.codegen.xtend2-feature</module>
		
		<!-- module>org.eclipse.gmf.xpand-feature</module -->
		<module>org.eclipse.gmf.examples-feature</module>
		<module>org.eclipse.gmf.examples.pde-feature</module>

		<!-- tests, should be a separate build against newly built repo, to test 
			also created repo (whole distribution) -->
		<!-- module>org.eclipse.gmf.tests.experimental-feature</module -->
		<!-- module>org.eclipse.gmf.tests-feature</module -->
	</modules>

</project>
