<?xml version="1.0" encoding="UTF-8"?>

<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.gvsig.mobile</groupId>
	<artifactId>gvsig-base-extension-pom</artifactId>
	<name>gvsig-base-extension-pom</name>
	<packaging>pom</packaging>
	<version>1.0-SNAPSHOT</version>
	
	<parent>
		<groupId>org.gvsig.mobile</groupId>
		<artifactId>gvsig-base-pom</artifactId>
		<version>1.0-SNAPSHOT</version>
	</parent>	
	
	<description> 
		Base POM for all gvSIG extension projects. 
		This pom knows how to build and made an extension for gvSIG Mobile.
		 The property "build-dir" must be set up correctly.
	</description>
	
	<properties>
		<!--  Path of the build project folder -->
		<build-dir>${basedir}/..</build-dir>
		
		<!--  gvSIG installation folder -->
		<gvsig.install.dir>${build-dir}/product</gvsig.install.dir>
		
		<!--  gvSIG extensions installation folder -->
		<allextensions.install.dir>${gvsig.install.dir}/gvSIG/extensiones</allextensions.install.dir>
		
		<!--  Current extension installation folder -->
		<extension.install.dir>${allextensions.install.dir}/${artifactId}</extension.install.dir>
		
		<!--
			Maven assembly plugin configuration file for the current extension,
			relative to the extension folder.
		-->		
		<extension.distribution.file>distribution/distribution.xml</extension.distribution.file>
		
		<!-- Maven assembly plugin output folder -->
		<extension-distribution>	gvSIG-Mobile/bundles/${artifactId}</extension-distribution>
		
		<!-- Extension installation library folder -->
		<library-dir>lib</library-dir>
		
		<!-- gvSIG app extension installation folder -->
		<gvsig-extension-distribution>
			gvSIG-Mobile/bundles/org.gvsig.mobile.core.GvSigCore/
		</gvsig-extension-distribution>

		<!--
			<distribution-final-name>${project.name}</distribution-final-name>
		-->
		
		<!--		<config>config</config>-->
		<!--		<plugin-name>${project.artifactId}</plugin-name>-->
		<!--		<temporaly-build>-->
		<!--			${project.build.directory}/${plugin-name}-->
		<!--		</temporaly-build>-->
		<!--		<extension-ant-base-dir> ${build-dir}/extension-pom-->
		<!--		</extension-ant-base-dir>-->
		<!--		<extensions-install-dir>-->
		<!--			${build-dir}/product/gvSIG/extensiones-->
		<!--		</extensions-install-dir>-->
		<!--		<distribution-output-directory> distribution/-->
		<!--		</distribution-output-directory>-->

	</properties>
	
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-resources-plugin
				</artifactId>
				<version>2.4</version>
				<executions>
						<execution>
								<id>copy-img</id>
								<!-- here the phase you need -->
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/extra-resources
									</outputDirectory>
									<resources>
										<resource>
											<directory>${basedir}/resources
											</directory>
											<includes>
												<include> ** </include>
											</includes>
											<!--<filtering>true</filtering>-->
										</resource>										
									</resources>
								</configuration>
							</execution>
							<execution>
								<id>copy-resources</id>
								<!-- here the phase you need -->
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target
									</outputDirectory>
									<resources>										
										<resource>
											<directory>${basedir}</directory>
											<includes>
												<include> config.xml </include>
												<include> *.properties </include>
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-assembly-plugin
						</artifactId>
				<configuration>
					<descriptors>
						<descriptor>${extension.distribution.file}
						</descriptor>
					</descriptors>
					<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
					<appendAssemblyId>true</appendAssemblyId>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id>
						<!--
									this is used for inheritance merges
								-->
						<phase>install</phase>
						<!--
									append to the packaging phase.
								-->
						<goals>
							<goal>attached</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-clean-plugin</artifactId>
				<configuration>
					<filesets>
						<fileset>
							<directory>${extension.install.dir}
							</directory>
							<includes>
								<include>**</include>
							</includes>
						</fileset>
					</filesets>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<!--
					Generates a jar file only with the mapcontext API TODO: make a good
					configuration of excludes and includes, when the api and
					implementation of the mapcontext library would be performed.
				-->
				<configuration>
					<classesDirectory>
						target/extra-resources
					</classesDirectory>
					<excludes>
						<exclude>img/*.db</exclude>
						<exclude>img/**/*.db</exclude>
						<exclude>META-INF/**</exclude>
					</excludes>
					<includes>
						<include>img/**/*.png</include>
					</includes>
				</configuration>
				<executions>
					<!--
						Generates a jar file only with the mapcontext implementation
					-->
					<execution>
						<id>icons</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<classifier>icons</classifier>
							<outputDirectory>${project.basedir}</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>install-extension</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<property>
					<name>install-extension</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-resources-plugin
						</artifactId>
						<version>2.4</version>
						<executions>
							<execution>
								<id>copy-img</id>
								<!-- here the phase you need -->
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/extra-resources
									</outputDirectory>
									<resources>
										<resource>
											<directory>${basedir}/resources
											</directory>
											<includes>
												<include> ** </include>
											</includes>
											<!--<filtering>true</filtering>-->
										</resource>										
									</resources>
								</configuration>
							</execution>
							<execution>
								<id>copy-resources</id>
								<!-- here the phase you need -->
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target
									</outputDirectory>
									<resources>										
										<resource>
											<directory>${basedir}</directory>
											<includes>
												<include> config.xml </include>												
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>
							<execution>
								<id>copy-languages</id>
								<!-- here the phase you need -->
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/languages
									</outputDirectory>
									<resources>										
										<resource>
											<directory>${basedir}/languages</directory>
											<includes>												
												<include> *.properties </include>
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>
							<execution>
								<id>copy-dll</id>
								<!-- here the phase you need -->
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/classes/lib
									</outputDirectory>
									<resources>										
										<resource>
											<directory>${basedir}/lib</directory>
											<includes>												
												<include> *.dll </include>
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-assembly-plugin
						</artifactId>
						<configuration>
							<descriptors>
								<descriptor>${extension.distribution.file}
								</descriptor>
							</descriptors>
							<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
							<appendAssemblyId>true</appendAssemblyId>							
						</configuration>
						<executions>
							<execution>
								<id>make-assembly</id>
								<!--
									this is used for inheritance merges
								-->
								<phase>install</phase>
								<!--
									append to the packaging phase.
								-->
								<goals>
									<goal>attached</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-to-andami</id>
								<phase>install</phase>
								<configuration>
									<tasks>
										<property name="project.packaging" value="${project.packaging}" />
										<property name="gvsig.install.dir" value="${gvsig.install.dir}" />
										<property name="distribution-final-name" value="${project.build.finalName}" />
										<ant antfile="${build-dir}/ant-tasks/gvsig-extension-tasks.xml"
											target="make-extension-new" inheritRefs="true" />
									</tasks>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-clean-plugin</artifactId>
						<configuration>
							<filesets>
								<fileset>
									<directory>${extension.install.dir}
									</directory>
									<includes>
										<include>**</include>
									</includes>
								</fileset>
							</filesets>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>generate-installers</id>
			<activation>
				<property>
					<name>generate-install</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-assembly-plugin
						</artifactId>
						<configuration>
							<descriptors>
								<descriptor>
									${distribution-win32-descriptor}
								</descriptor>
								<descriptor>
									${distribution-linux32-descriptor}
								</descriptor>
								<!--
									descriptor> ${distribution-mac-descriptor </descriptor
								-->
								<!--
									descriptor> /distribution/source-distribution.xml </descriptor
								-->
							</descriptors>
							<outputDirectory>
								${distribution-output-directory}
							</outputDirectory>
							<finalName>
								${distribution-final-name}
							</finalName>
							<appendAssemblyId>true</appendAssemblyId>
							<ignoreDirFormatExtensions>
								true
							</ignoreDirFormatExtensions>
						</configuration>
						<executions>
							<execution>
								<id>make-assembly</id>
								<!--
									this is used for inheritance merges
								-->
								<phase>package</phase>
								<!--
									append to the packaging phase.
								-->
								<goals>
									<goal>attached</goal><!-- goals == mojos -->
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>