<?xml version="1.0"?>

<!--

  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.

-->


<royale-config>
    <!-- Specifies the minimum player version that will run the compiled SWF. -->
   <target-player>11.1</target-player>

    <!-- Specifies the version of the compiled SWF -->
   <swf-version>14</swf-version>

   <compiler>

    <define><name>COMPILE::SWF</name><value>true</value></define>
    <define><name>COMPILE::JS</name><value>false</value></define>
    <define><name>CONFIG::debug</name><value>false</value></define>
    <define><name>CONFIG::release</name><value>true</value></define>
    <define><name>CONFIG::LOGGING</name><value>false</value></define>
    <define><name>CONFIG::performanceInstrumentation</name><value>false</value></define>

      <!-- Turn on generation of accessible SWFs. -->
      <accessible>true</accessible>

      <!-- Specifies the locales for internationalization. -->
      <locale>
          <locale-element>en_US</locale-element>
      </locale>

      <!-- List of path elements that form the roots of ActionScript class hierarchies. -->
      <!-- not set -->
      <!--
      <source-path>
         <path-element>string</path-element>
      </source-path>
      -->
      <source-path>
          <path-element>${frameworks_dir}/projects/Binding/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Charts/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Collections/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Core/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/CreateJS/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/DragDrop/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Effects/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Formatters/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/GoogleMaps/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Graphics/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Basic/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/HTML5/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/JQuery/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Language/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Mobile/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Network/src/main/royale</path-element>
          <path-element>${frameworks_dir}/projects/Reflection/src/main/royale</path-element>
     </source-path>

     <!-- Allow the source-path to have path-elements which contain other path-elements -->
     <allow-source-path-overlap>false</allow-source-path-overlap>

      <!-- Run the AS3 compiler in a mode that detects legal but potentially incorrect -->
      <!-- code.                                                                       -->
      <show-actionscript-warnings>true</show-actionscript-warnings>

      <!-- Turn on generation of debuggable SWFs. False by default for mxmlc, -->
      <!-- but true by default for compc. -->
      <!--
      <debug>true</debug>
      -->

      <!-- Turn on writing of generated/*.as files to disk. These files are generated by -->
      <!-- the compiler during mxml translation and are helpful with understanding and   -->
      <!-- debugging Royale applications.                                                  -->
      <keep-generated-actionscript>false</keep-generated-actionscript>

      <!-- not set -->
      <!--
      <include-libraries>
         <library>string</library>
      </include-libraries>
      -->

      <!-- List of SWC files or directories that contain SWC files. -->
      <library-path>
          <path-element>${royalelib}/libs/core.swc</path-element>
          <path-element>${royalelib}/libs/framework.swc</path-element>
         <path-element>{playerglobalHome}/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}</path-element>
      </library-path>

        <!-- namespace declaration for asdoc -->
        <namespaces>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Binding/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Charts/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Collections/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Core/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/createjs</uri>
                <manifest>${frameworks_dir}/projects/CreateJS/src/main/resources/createjs-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/DragDrop/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Effects/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Formatters/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/google</uri>
                <manifest>${frameworks_dir}/projects/GoogleMaps/src/main/resources/google-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Graphics/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Basic/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/html5</uri>
                <manifest>${frameworks_dir}/projects/HTML5/src/main/resources/html5-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/jquery</uri>
                <manifest>${frameworks_dir}/projects/JQuery/src/main/resources/jquery-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Mobile/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/basic</uri>
                <manifest>${frameworks_dir}/projects/Network/src/main/resources/basic-manifest.xml</manifest>
            </namespace>
            <namespace>
                <uri>library://ns.apache.org/royale/html</uri>
                <manifest>${frameworks_dir}/projects/HTML/src/main/resources/html-manifest.xml</manifest>
            </namespace>
        </namespaces>

      <!-- Enable post-link SWF optimization. -->
      <optimize>true</optimize>

      <!-- Enable trace statement omission. -->
      <omit-trace-statements>true</omit-trace-statements>

      <!-- Keep the following AS3 metadata in the bytecodes.                                             -->
      <!-- Warning: For the data binding feature in the Royale framework to work properly,                 -->
      <!--          the following metadata must be kept:                                                 -->
      <!--          1. Bindable                                                                          -->
      <!--          2. Managed                                                                           -->
      <!--          3. ChangeEvent                                                                       -->
      <!--          4. NonCommittingChangeEvent                                                          -->
      <!--          5. Transient                                                                         -->
      <!--
      <keep-as3-metadata>
          <name>Bindable</name>
          <name>Managed</name>
          <name>ChangeEvent</name>
          <name>NonCommittingChangeEvent</name>
          <name>Transient</name>
      </keep-as3-metadata>
      -->

      <!-- Turn on reporting of data binding warnings. For example: Warning: Data binding -->
      <!-- will not be able to detect assignments to "foo".                               -->
      <show-binding-warnings>true</show-binding-warnings>

      <!-- toggle whether warnings generated from unused type selectors are displayed -->
      <show-unused-type-selector-warnings>true</show-unused-type-selector-warnings>

      <!-- Run the AS3 compiler in strict error checking mode. -->
      <strict>true</strict>

      <!-- Use the ActionScript 3 class based object model for greater performance and better error reporting. -->
      <!-- In the class based object model most built-in functions are implemented as fixed methods of classes -->
      <!-- (-strict is recommended, but not required, for earlier errors) -->
      <as3>true</as3>

      <!-- Use the ECMAScript edition 3 prototype based object model to allow dynamic overriding of prototype -->
      <!-- properties. In the prototype based object model built-in functions are implemented as dynamic      -->
      <!-- properties of prototype objects (-strict is allowed, but may result in compiler errors for         -->
      <!-- references to dynamic properties) -->
      <es>false</es>

      <!-- List of CSS or SWC files to apply as a theme. -->
      <theme>
      </theme>

      <!-- Turns on the display of stack traces for uncaught runtime errors. -->
      <verbose-stacktraces>false</verbose-stacktraces>

      <!-- Defines the AS3 file encoding. -->
      <!-- not set -->
      <!--
      <actionscript-file-encoding></actionscript-file-encoding>
      -->

      <fonts>

          <!-- Enables advanced anti-aliasing for embedded fonts, which provides greater clarity for small -->
          <!-- fonts. This setting can be overriden in CSS for specific fonts. -->
          <!-- NOTE: flash-type has been deprecated. Please use advanced-anti-aliasing <flash-type>true</flash-type> -->
          <advanced-anti-aliasing>true</advanced-anti-aliasing>

          <!-- The number of embedded font faces that are cached. -->
          <max-cached-fonts>20</max-cached-fonts>

          <!-- The number of character glyph outlines to cache for each font face. -->
          <max-glyphs-per-face>1000</max-glyphs-per-face>

          <!-- Defines ranges that can be used across multiple font-face declarations. -->
          <!-- See flash-unicode-table.xml for more examples. -->
          <!-- not set -->
          <!--
          <languages>
              <language-range>
                  <lang>englishRange</lang>
                  <range>U+0020-007E</range>
              </language-range>
          </languages>
          -->

          <!-- Compiler font manager classes, in policy resolution order -->
          <!-- NOTE: For Apache Royale -->
          <!-- AFEFontManager and CFFFontManager both use proprietary technology.  -->
          <!-- You must install the optional font jars if you wish to use embedded fonts  -->
          <!-- directly or you can use fontswf to precompile the font as a swf.  -->
          <managers>
              <manager-class>flash.fonts.JREFontManager</manager-class>
              <manager-class>flash.fonts.BatikFontManager</manager-class>
              <manager-class>flash.fonts.AFEFontManager</manager-class>
              <manager-class>flash.fonts.CFFFontManager</manager-class>
          </managers>

          <!-- File containing cached system font licensing information produced via
               java -cp mxmlc.jar flex2.tools.FontSnapshot (fontpath)
               Will default to winFonts.ser on Windows XP and
               macFonts.ser on Mac OS X, so is commented out by default.

          <local-fonts-snapshot>localFonts.ser</local-fonts-snapshot>
          -->

      </fonts>
      
      <!-- Array.toString() format has changed. -->
      <warn-array-tostring-changes>false</warn-array-tostring-changes>

      <!-- Assignment within conditional. -->
      <warn-assignment-within-conditional>true</warn-assignment-within-conditional>

      <!-- Possibly invalid Array cast operation. -->
      <warn-bad-array-cast>true</warn-bad-array-cast>

      <!-- Non-Boolean value used where a Boolean value was expected. -->
      <warn-bad-bool-assignment>true</warn-bad-bool-assignment>

      <!-- Invalid Date cast operation. -->
      <warn-bad-date-cast>true</warn-bad-date-cast>

      <!-- Unknown method. -->
      <warn-bad-es3-type-method>true</warn-bad-es3-type-method>

      <!-- Unknown property. -->
      <warn-bad-es3-type-prop>true</warn-bad-es3-type-prop>

      <!-- Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN. -->
      <warn-bad-nan-comparison>true</warn-bad-nan-comparison>

      <!-- Impossible assignment to null. -->
      <warn-bad-null-assignment>true</warn-bad-null-assignment>

      <!-- Illogical comparison with null. -->
      <warn-bad-null-comparison>true</warn-bad-null-comparison>

      <!-- Illogical comparison with undefined. Only untyped variables (or variables of type *) can be undefined. -->
      <warn-bad-undefined-comparison>true</warn-bad-undefined-comparison>

      <!-- Boolean() with no arguments returns false in ActionScript 3.0. Boolean() returned undefined in ActionScript 2.0. -->
      <warn-boolean-constructor-with-no-args>false</warn-boolean-constructor-with-no-args>

      <!-- __resolve is no longer supported. -->
      <warn-changes-in-resolve>false</warn-changes-in-resolve>

      <!-- Class is sealed. It cannot have members added to it dynamically. -->
      <warn-class-is-sealed>true</warn-class-is-sealed>

      <!-- Constant not initialized. -->
      <warn-const-not-initialized>true</warn-const-not-initialized>

      <!-- Function used in new expression returns a value. Result will be what the -->
      <!-- function returns, rather than a new instance of that function.           -->
      <warn-constructor-returns-value>false</warn-constructor-returns-value>

      <!-- EventHandler was not added as a listener. -->
      <warn-deprecated-event-handler-error>false</warn-deprecated-event-handler-error>

      <!-- Unsupported ActionScript 2.0 function. -->
      <warn-deprecated-function-error>true</warn-deprecated-function-error>

      <!-- Unsupported ActionScript 2.0 property. -->
      <warn-deprecated-property-error>true</warn-deprecated-property-error>

      <!-- More than one argument by the same name. -->
      <warn-duplicate-argument-names>true</warn-duplicate-argument-names>

      <!-- Duplicate variable definition -->
      <warn-duplicate-variable-def>true</warn-duplicate-variable-def>

      <!-- ActionScript 3.0 iterates over an object's properties within a "for x in target" statement in random order. -->
      <warn-for-var-in-changes>false</warn-for-var-in-changes>

      <!-- Importing a package by the same name as the current class will hide that class identifier in this scope. -->
      <warn-import-hides-class>true</warn-import-hides-class>

      <!-- Use of the instanceof operator. -->
      <warn-instance-of-changes>true</warn-instance-of-changes>

      <!-- Internal error in compiler. -->
      <warn-internal-error>true</warn-internal-error>

      <!-- _level is no longer supported. For more information, see the flash.display package. -->
      <warn-level-not-supported>true</warn-level-not-supported>

      <!-- Missing namespace declaration (e.g. variable is not defined to be public, private, etc.). -->
      <warn-missing-namespace-decl>true</warn-missing-namespace-decl>

      <!-- Negative value will become a large positive value when assigned to a uint data type. -->
      <warn-negative-uint-literal>true</warn-negative-uint-literal>

      <!-- Missing constructor. -->
      <warn-no-constructor>false</warn-no-constructor>

      <!-- The super() statement was not called within the constructor. -->
      <warn-no-explicit-super-call-in-constructor>false</warn-no-explicit-super-call-in-constructor>

      <!-- Missing type declaration. -->
      <warn-no-type-decl>true</warn-no-type-decl>

      <!-- In ActionScript 3.0, white space is ignored and '' returns 0. Number() returns -->
      <!-- NaN in ActionScript 2.0 when the parameter is '' or contains white space.      -->
      <warn-number-from-string-changes>false</warn-number-from-string-changes>

      <!-- Change in scoping for the this keyword. Class methods extracted from an  -->
      <!-- instance of a class will always resolve this back to that instance. In   -->
      <!-- ActionScript 2.0 this is looked up dynamically based on where the method -->
      <!-- is invoked from.                                                         -->
      <warn-scoping-change-in-this>false</warn-scoping-change-in-this>

      <!-- Inefficient use of += on a TextField.-->
      <warn-slow-text-field-addition>true</warn-slow-text-field-addition>

      <!-- Possible missing parentheses. -->
      <warn-unlikely-function-value>true</warn-unlikely-function-value>

      <!-- Possible usage of the ActionScript 2.0 XML class. -->
      <warn-xml-class-has-changed>false</warn-xml-class-has-changed>

   </compiler>

   <!-- compute-digest: writes a digest to the catalog.xml of a library. Use this when the library will be used as a
                        cross-domain rsl.-->
   <!-- compute-digest usage:
   <compute-digest>boolean</compute-digest>
   -->

   <!-- remove-unused-rsls: remove RSLs that are not being used by the application-->
   <remove-unused-rsls>true</remove-unused-rsls>

	<!-- static-link-runtime-shared-libraries: statically link the libraries specified by the -runtime-shared-libraries-path option.-->
	<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>

   <!-- target-player: specifies the version of the player the application is targeting.
                       Features requiring a later version will not be compiled into the application.
                       The minimum value supported is "9.0.0".-->
   <!-- target-player usage:
   <target-player>version</target-player>
   -->

   <!-- Enables SWFs to access the network. -->
   <use-network>true</use-network>

   <!-- Metadata added to SWFs via the SWF Metadata tag. -->
   <metadata>
      <title>Apache Royale Application</title>
      <description>http://royale.apache.org/</description>
      <publisher>Apache Software Foundation</publisher>
      <creator>unknown</creator>
      <language>EN</language>
   </metadata>
   
   <exclude-classes>
       <class>org.apache.royale.utils.Language</class>
       <class>org.apache.royale.utils.URLUtils</class>
       <class>org.apache.royale.core.IRoyaleElement</class>
       <class>org.apache.royale.core.WrappedHTMLElement</class>
       <class>org.apache.royale.events.BrowserEvent</class>
       <class>org.apache.royale.html.beads.CSSTextButtonView</class>
       <class>org.apache.royale.maps.google.beads.MapView_original</class>
       <class>org.apache.royale.events.utils.EventUtils</class>
	   <class>org.apache.royale.utils.ObjectMap</class>
    </exclude-classes>
   
   <exclude-sources>
       <path-element>${frameworks_dir}/projects/Language/src/main/royale/org/apache.royale/utils/Language.as</path-element>
       <path-element>${frameworks_dir}/projects/Core/src/main/royale/org/apache.royale/utils/URLUtils.as</path-element>
       <path-element>${frameworks_dir}/projects/Core/src/main/royale/org/apache.royale/core/WrappedHTMLElement.as</path-element>
       <path-element>${frameworks_dir}/projects/Core/src/main/royale/org/apache.royale/events/BrowserEvent.as</path-element>
       <path-element>${frameworks_dir}/projects/Core/src/main/royale/org/apache.royale/events/utils/EventUtils.as</path-element>
       <path-element>${frameworks_dir}/projects/GoogleMaps/src/main/royale/org/apache.royale/maps/google/beads/MapView_original.as</path-element>
	   <path-element>${frameworks_dir}/projects/Core/src/main/royale/org/apache.royale/utils/ObjectMap.as</path-element>
    </exclude-sources>
   
   <!-- source path for asdoc -->
   
            <!-- namespaces to include in asdoc -->
            <doc-namespaces>
                <uri>library://ns.apache.org/royale/basic</uri>
                <uri>library://ns.apache.org/royale/createjs</uri>
                <uri>library://ns.apache.org/royale/google</uri>
                <uri>library://ns.apache.org/royale/html5</uri>
                <uri>library://ns.apache.org/royale/jquery</uri>
            </doc-namespaces>
            
            <!-- classes to include in asdoc -->
            <doc-sources>
                <path-element>${frameworks_dir}/projects/Binding/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Charts/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Collections/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Core/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/CreateJS/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/DragDrop/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Effects/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Formatters/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/GoogleMaps/src/main/royale/org</path-element>
            <path-element>${frameworks_dir}/projects/Graphics/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Basic/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/HTML5/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/JQuery/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Mobile/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Network/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/Reflection/src/main/royale</path-element>
            <path-element>${frameworks_dir}/projects/GoogleMaps/src/main/royale/google/maps/LatLng.as</path-element>
            </doc-sources>
            
</royale-config>
