<!--                                                                        -->
<!-- Copyright 2008 Google Inc.                                             -->
<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
<!-- may not use this file except in compliance with the License. You may   -->
<!-- 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. License for the specific language governing permissions and   -->
<!-- limitations under the License.                                         -->

<!-- Types and resources required to support primitive system operation.    -->
<!--                                                                        -->
<!-- Types from this module are visible to and imported into user code.     -->
<!-- Every module should directly or indirectly inherit this module.        -->
<!--                                                                        -->
<module type="fileset">
  <inherits name="com.google.gwt.dev.jjs.intrinsic.Intrinsic" />
  <inherits name="com.google.gwt.emul.Emulation" />
  <inherits name="com.google.gwt.typedarrays.TypedArrays" />
  <inherits name="com.google.gwt.xhr.XMLHttpRequest" />
  <inherits name="com.google.gwt.core.CompilerParameters" />
  <inherits name="com.google.gwt.core.EmulateJsStack" />
  <inherits name="com.google.gwt.core.AsyncFragmentLoader" />

  <source path="client" />
  <source path="shared" />
  <super-source path="translatable" />
  <public path="public" />

  <define-linker name="sso" class="com.google.gwt.core.linker.SingleScriptLinker" />
  <define-linker name="std" class="com.google.gwt.core.linker.IFrameLinker" />
  <inherits name="com.google.gwt.core.XSLinker" />
  <inherits name="com.google.gwt.core.CrossSiteIframeLinker" />

  <!-- When true, compiles in support for GWT.unloadModule(), otherwise it is a no-op. -->
  <define-property name="gwt.unloadEnabled" values="false, true"/>
  <set-property name="gwt.unloadEnabled" value="false"/>

  <replace-with class="com.google.gwt.core.client.impl.UnloadSupportEnabled">
      <when-property-is name="gwt.unloadEnabled" value="true"/>
      <when-type-is class="com.google.gwt.core.client.impl.UnloadSupport"/>
  </replace-with>

  <!--
    A property that can be used to see if Super Dev Mode is on. It should only be set
    by Super Dev Mode.
  -->
  <define-property name="superdevmode" values="off, on"/>
  <set-property name="superdevmode" value="off"/>

  <replace-with class="com.google.gwt.core.client.impl.SuperDevModeLogger">
      <when-property-is name="superdevmode" value="on"/>
      <when-type-is class="com.google.gwt.core.shared.impl.JsLogger"/>
  </replace-with>

  <define-linker name="soycReport" class="com.google.gwt.core.linker.SoycReportLinker" />
  <define-linker name="symbolMaps" class="com.google.gwt.core.linker.SymbolMapsLinker" />

  <add-linker name="std" />

  <add-linker name="soycReport" />
  <add-linker name="symbolMaps" />
  
</module>
