Форк Rambox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

214 lines
8.4 KiB

<project name="x-js-impl">
<!--
this target extracts split mode information from the compiler's app
processor to determine various pieces of information
-->
<target name="-detect-app-build-properties"
depends="-init-app-js-files">
<x-load-app-builder-properties
refid="${compiler.ref.id}"
splitModePropName="enable.split.mode"
pageModePropName="app.page.mode"
hasJsSdkPropName="app.has.js.sdk"
hasCssSdkPropName="app.has.css.sdk"
hasUsesPackagesPropName="app.has.uses" />
</target>
<!--
this is the standard js compile target that builds the output js file(s)
-->
<target name="-compile-js" depends="-detect-app-build-properties">
<property name="app.output.framework.include"
value="package-sencha-core,framework,toolkit,package-core"/>
<property name="enable.used.deps" value="${app.has.uses}"/>
<if>
<x-is-true value="${enable.used.deps}"/>
<then>
<x-compile refid="${compiler.ref.id}">
# determine the base set of framework files
exclude
-all
and
include
-tag=${app.output.framework.include}
and
save
allframework
</x-compile>
<for param="file">
<fileset dir="${workspace.build.dir}/temp" includes="**/deps.json"/>
<sequential>
<x-compile refid="${compiler.ref.id}">
# now load the transitive set based on the json data
exclude
-all
and
include
-json-data=@{file}
-r
and
save
deps
and
# add any needed deps to the page save set
include
-set=page
and
save
page
</x-compile>
</sequential>
</for>
</then>
<else>
<if>
<equals arg1="${app.output.js.filter}" arg2="all"/>
<then>
<x-compile refid="${compiler.ref.id}">
# if filtering requirements is configured for 'all'
# then just include all js content on the classpath to
# ensure all dependencies are provided for the used packages
include
-all
and
save
page
</x-compile>
</then>
</if>
</else>
</if>
<if>
<x-is-true value="${enable.split.mode}"/>
<then>
<local name="build.js.framework.fwset" />
<local name="build.js.framework.rtl" />
<if>
<or>
<x-is-true value="${app.output.framework.all}" />
<isset property="app.has.uses" />
</or>
<then>
<property name="build.include.all.scss" value="true" />
<property name="build.js.framework.fwset"> </property>
<if>
<x-is-false value="${app.output.framework.rtl}" />
<then>
<property name="build.js.framework.rtl">
<![CDATA[
exclude
-namespace=Ext.rtl
and
]]>
</property>
</then>
<else>
<property name="build.js.framework.rtl"> </property>
</else>
</if>
</then>
<else>
<property name="build.js.framework.fwset">
<![CDATA[
intersect
-set=page,allframework
and
]]>
</property>
<property name="build.js.framework.rtl"> </property>
</else>
</if>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
# build a separate sdk-only js file
restore
page
and
${build.optimize}
and
exclude
-all
and
include
-tag=${app.output.framework.include}
and
save
allframework
and
${build.js.framework.fwset}
save
frameworkdeps
and
${build.js.framework.rtl}
include
-tag=Ext.cmd.derive
and
concat
-remove-text-references=${build.remove.references}
-optimize-string-references=${build.optimize.string.references}
-remove-requirement-nodes=${build.remove.requirement.nodes}
${build.compression}
-out=${build.framework.file}
${build.concat.options}
# now build the all-classes file, without
# the framework code included
and
restore
page
and
exclude
-set=frameworkdeps
and
exclude
-tag=Ext.cmd.derive,derive
and
concat
-remove-text-references=${build.remove.references}
-optimize-string-references=${build.optimize.string.references}
-remove-requirement-nodes=${build.remove.requirement.nodes}
${build.compression}
-out=${build.classes.file}
${build.concat.options}
]]>
</x-compile>
</then>
<else>
<local name="framework.include.filter"/>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
# build an all-classes.js file that contains
# all code needed by the app
restore
page
and
${build.optimize}
and
concat
-remove-text-references=${build.remove.references}
-optimize-string-references=${build.optimize.string.references}
-remove-requirement-nodes=${build.remove.requirement.nodes}
${build.compression}
-out=${build.classes.file}
${build.concat.options}
]]>
</x-compile>
</else>
</if>
</target>
<!--
Build javascript
-->
<target name="-before-js"/>
<target name="-js" depends="-compile-js"/>
<target name="-after-js"/>
</project>