<?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 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>
    <groupId>org.apache.flex.flexjs</groupId>
    <artifactId>flexjs-parent</artifactId>
    <version>0.7.0-SNAPSHOT</version>
  </parent>

  <groupId>org.apache.flex.flexjs.externs</groupId>
  <artifactId>flexjs-externs</artifactId>
  <version>0.7.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Flex - FlexJS: Externs</name>

  <properties>
    <git.executable>git</git.executable>
  </properties>

  <modules>
    <module>cordova</module>
    <module>createjs</module>
    <module>GCL</module>
    <module>google_maps</module>
    <module>jasmine</module>
    <module>jquery</module>
    <module>js</module>
    <module>node</module>
  </modules>

  <!--
      We only need the git executable in the externs in order to apply patches.
      On Windows machines we need to execute "git.exe" instead of "git".
  -->
  <profiles>
    <profile>
      <id>windows-machine</id>
      <activation>
        <os>
          <family>Windows</family>
        </os>
      </activation>
      <properties>
        <git.executable>git.exe</git.executable>
      </properties>
    </profile>
  </profiles>

</project>
