<?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.

-->


<flex-config>
    <!-- Specifies the minimum player version that will run the compiled SWF. -->
   <target-player>@playerversion@</target-player>

    <!-- Specifies the version of the compiled SWF -->
   <swf-version>@swfversion@</swf-version>

   <compiler>

      <!-- build both SWF and JS. -->
      <targets>
          <target>SWF</target>
          <target>JSRoyale</target>
      </targets>
    
      <define><name>COMPILE::SWF</name><value>AUTO</value></define>
      <define><name>COMPILE::JS</name><value>AUTO</value></define>
    
      <!-- Turn on generation of accessible SWFs. -->
      <accessible>true</accessible>

      <!-- Specifies the locales for internationalization. -->
      <locale>
          <locale-element>@locale@</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>
      -->

     <!-- 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>
      -->

      <!-- List of SWC files or directories to compile against but to omit from -->
      <!-- linking.                                                             -->
      <external-library-path>
          <path-element>{playerglobalHome}/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}/playerglobal.swc</path-element>
      </external-library-path>

      <!-- List of SWC files or directories to compile against but to omit from -->
      <!-- linking.                                                             -->
      <js-external-library-path>
          <path-element>../js/libs/js.swc</path-element>
          <path-element>../js/libs/GCL.swc</path-element>
      </js-external-library-path>

      <!-- 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>libs</path-element>
         <path-element>{playerglobalHome}/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}</path-element>
      </library-path>

      <!-- List of SWC files or directories that contain SWC files. -->
      <js-library-path>
          <path-element>js/libs</path-element>
      </js-library-path>

      <allow-subclass-overrides>true</allow-subclass-overrides>
      <mxml>
          <children-as-data>true</children-as-data>
          <imports>
              <implicit-import>org.apache.royale.events.Event</implicit-import>
              <implicit-import>org.apache.royale.events.EventDispatcher</implicit-import>
              <implicit-import>org.apache.royale.events.IEventDispatcher</implicit-import>
              <implicit-import>mx.events.MouseEvent</implicit-import>
              <implicit-import>org.apache.royale.geom.*</implicit-import>
              <implicit-import>org.apache.royale.core.ClassFactory</implicit-import>
              <implicit-import>org.apache.royale.core.IFactory</implicit-import>
          </imports>
      </mxml>
      <binding-value-change-event>org.apache.royale.events.ValueChangeEvent</binding-value-change-event>
      <binding-value-change-event-kind>org.apache.royale.events.ValueChangeEvent</binding-value-change-event-kind>
      <binding-value-change-event-type>valueChange</binding-value-change-event-type>
      <binding-event-handler-event>org.apache.royale.events.Event</binding-event-handler-event>
      <binding-event-handler-class>org.apache.royale.events.EventDispatcher</binding-event-handler-class>
      <binding-event-handler-interface>org.apache.royale.events.IEventDispatcher</binding-event-handler-interface>
      <states-class>org.apache.royale.states.State</states-class>
      <states-instance-override-class>org.apache.royale.states.AddItems</states-instance-override-class>
      <states-property-override-class>org.apache.royale.states.SetProperty</states-property-override-class>
      <states-event-override-class>org.apache.royale.states.SetEventHandler</states-event-override-class>
      <component-factory-class>org.apache.royale.core.ClassFactory</component-factory-class>
      <component-factory-interface>org.apache.royale.core.IFactory</component-factory-interface>
      <fxg-base-class>flash.display.Sprite</fxg-base-class>

      <namespaces>
      <!-- Specify a URI to associate with a manifest of components for use as MXML -->
      <!-- elements.                                                                -->
      <namespace>
          <uri>http://ns.adobe.com/mxml/2009</uri>
          <manifest>mxml-2009-manifest.xml</manifest>
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Binding/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Basic/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Charts/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Collections/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Core/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/DragDrop/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Effects/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Formatters/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Graphics/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/svg</uri>
          
          <manifest>projects/Graphics/src/main/resources/svg-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/HTML/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/html</uri>
          
          <manifest>projects/HTML/src/main/resources/html-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Mobile/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/basic</uri>
          
          <manifest>projects/Network/src/main/resources/basic-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/html5</uri>
          
          <manifest>projects/HTML5/src/main/resources/html5-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/flat</uri>
          
          <manifest>projects/Flat/src/main/resources/flat-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/jquery</uri>
          
          <manifest>projects/JQuery/src/main/resources/jquery-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/google</uri>
          
          <manifest>projects/GoogleMaps/src/main/resources/google-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/cordova</uri>
          
          <manifest>projects/Mobile/src/main/resources/cordova-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/createjs</uri>
          
          <manifest>projects/CreateJS/src/main/resources/createjs-manifest.xml</manifest>
          
      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/mdl</uri>

          <manifest>projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml</manifest>

      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/express</uri>

          <manifest>projects/Express/src/main/resources/express-manifest.xml</manifest>

      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/fa</uri>

          <manifest>projects/FontAwesome/src/main/resources/fa-manifest.xml</manifest>

      </namespace>
      <namespace>
          <uri>library://ns.apache.org/royale/mx</uri>
          
          <manifest>projects/MXRoyale/src/main/resources/mx-royale-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>
          <name>Mixin</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>
          <filename>themes/Basic/src/basic.css</filename>
      </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>https://royale.apache.org/</description>
      <publisher>Apache Software Foundation</publisher>
      <creator>unknown</creator>
      <language>EN</language>
   </metadata>
   
</flex-config>
