<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<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/maven-v4_0_0.xsd">

  <parent>
    <groupId>org.apache.npanday</groupId>
    <version>1.5.0-incubating-SNAPSHOT</version>
    <artifactId>NPanday.Project</artifactId>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>NPanday.Assemblies</artifactId>
  <packaging>pom</packaging>
  <name>NPanday :: .NET Assemblies</name>
  <modules>
    <module>NPanday.Model.Pom</module>
    <module>NPanday.Model.Settings</module>
    <module>NPanday.Model.AutomationExtensibility</module>
    <module>NPanday.Utils</module>
    <module>NPanday.Artifact</module>
    <module>NPanday.Plugin</module>
    <module>NPanday.Plugin.MojoGenerator</module>	
    <module>NPanday.Plugin.Loader</module>
    <module>NPanday.Plugin.Runner</module>
  </modules>

  <profiles>
    <profile>
      <id>windows</id>
      <activation>
        <os>
          <family>windows</family>
        </os>
      </activation>
      <modules>
        <!-- TODO: uses MSBuild from gac / could rely on Xbuild from Mono on non-windows... -->
        <module>NPanday.ProjectImporter</module>
      </modules>
    </profile>
    <profile>
      <id>visualstudio</id>
      <activation>
        <file>
          <exists>${env.COMMONPROGRAMFILES}\Microsoft Shared\MSEnv\PublicAssemblies</exists>
        </file>
      </activation>
      <modules>
        <module>NPanday.VisualStudio.Addin</module>
        <module>NPanday.VisualStudio.ProjectWizard</module>
      </modules>
    </profile>
    <profile>
      <id>visualstudiox86</id>
      <activation>
        <file>
          <exists>${env.COMMONPROGRAMFILES(X86)}\Microsoft Shared\MSEnv\PublicAssemblies</exists>
        </file>
      </activation>
      <modules>
        <module>NPanday.VisualStudio.Addin</module>
        <module>NPanday.VisualStudio.ProjectWizard</module>
      </modules>
    </profile>
  </profiles>
</project>
