Scripts to create a JS version of the Flex SDK Signed-off-by: Erik de Bruin <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/cde5a713 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/cde5a713 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/cde5a713 Branch: refs/heads/develop Commit: cde5a713fcd520a8ebec312c95ca34ed5dbcc514 Parents: 8f6d2cd Author: Erik de Bruin <[email protected]> Authored: Fri Oct 31 16:57:14 2014 +0100 Committer: Erik de Bruin <[email protected]> Committed: Fri Oct 31 17:02:00 2014 +0100 ---------------------------------------------------------------------- vf2js/utils/FlexSDKToJS/FlexSDKToJS.sh | 216 +++++++++++++++++++++++++ vf2js/utils/FlexSDKToJS/JSFlexSDKDeps.sh | 1 + vf2js/utils/FlexSDKToJS/TextLayoutToJS.sh | 23 +++ 3 files changed, 240 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/cde5a713/vf2js/utils/FlexSDKToJS/FlexSDKToJS.sh ---------------------------------------------------------------------- diff --git a/vf2js/utils/FlexSDKToJS/FlexSDKToJS.sh b/vf2js/utils/FlexSDKToJS/FlexSDKToJS.sh new file mode 100755 index 0000000..6d0d910 --- /dev/null +++ b/vf2js/utils/FlexSDKToJS/FlexSDKToJS.sh @@ -0,0 +1,216 @@ +#!/bin/sh + +ROOT="/Users/erik/Documents/ApacheFlex/git/flex-asjs/vf2js/utils/FlexSDKToJS" +OUTPUT="/Users/erik/Documents/ApacheFlex/git/flex-asjs/vf2js/frameworks/js/vf2js" + +ARGS="" +ARGS="$ARGS +env.PLAYERGLOBAL_HOME="/Users/erik/Documents/apacheFlex/dependencies/PlayerGlobal/player" " +ARGS="$ARGS +playerglobal.version=15.0 " + +ARGS="$ARGS -load-config+="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/flex-config.xml" " +ARGS="$ARGS -load-config+="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/framework/framework-config.xml" " +ARGS="$ARGS -load-config+="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/spark/compile-config.xml" " + +ARGS="$ARGS -external-library-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/libs/air/airspark.swc" " + +ARGS="$ARGS -external-library-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/libs/player/15.0/playerglobal.swc" " + +ARGS="$ARGS -external-library-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/libs/osmf.swc" " + +ARGS="$ARGS -external-library-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/libs/textlayout.swc" " + +ARGS="$ARGS -external-library-path="/Users/erik/Documents/ApacheFlex/git/flex-asjs/vf2js/utils/FlexSDKToJS/lcds/libs/fds.swc" " + +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-asjs/vf2js/utils/FlexSDKToJS/src-framework-3.6.0/src" " + +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/advancedgrids/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/apache/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/charts/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/core/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/experimental/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/flash-integration/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/framework/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/mx/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/rpc/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/spark/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/spark_dmv/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/sparkskins/src" " +ARGS="$ARGS -source-path="/Users/erik/Documents/ApacheFlex/git/flex-sdk/frameworks/projects/wireframe/src" " + +ARGS="$ARGS -ignore-problems=org.apache.flex.compiler.problems.DuplicateSkinStateProblem " +ARGS="$ARGS -ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem " +ARGS="$ARGS -ignore-problems=org.apache.flex.compiler.problems.NoDefinitionForSWCDependencyProblem " + +ARGS="$ARGS -js-output-type=VF2JS " +ARGS="$ARGS -keep-asdoc=false " + +ARGS="$ARGS -closure-lib="/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure/library" " + +ARGS="$ARGS -output=${OUTPUT} " + +java -jar "/Users/erik/Documents/ApacheFlex/git/flex-falcon/compiler.jx/lib/compc.jar" ${ARGS} + + + +./TextLayoutToJS.sh + + + +cd ${OUTPUT} +#pwd + +# Delete xClasses.js +rm ./AdvancedDataGridClasses.js +rm ./ApacheClasses.js +rm ./ChartsClasses.js +rm ./CoreClasses.js +rm ./ExperimentalClasses.js +rm ./FrameworkClasses.js +rm ./MxClasses.js +rm ./RPCClasses.js +rm ./SparkClasses.js +rm ./SparkDmvClasses.js +rm ./SparkSkinsClasses.js +rm ./WireframeClasses.js + +# Create class 'QName' +cat <<EOF > ./QName.js +/** + * @fileoverview 'QName' + * + * @author [email protected] (Erik de Bruin) + */ + +'use strict'; + +goog.provide('QName'); + + + +/** + * @constructor + * @struct + */ +QName = function() {}; +EOF + +# Create class 'mx.core.mx_internal' +cat <<EOF > ./mx/core/mx_internal.js +/** + * @fileoverview 'mx.core.mx_internal' + * + * @author [email protected] (Erik de Bruin) + */ + +'use strict'; + +goog.provide('mx.core.mx_internal'); + + + +/** + * @constructor + * @struct + */ +mx.core.mx_internal = function() {}; +EOF + +# copy org.apache.flex.utils.Language from FlexJS SDK +mkdir ./org/apache/flex/utils +cp /Users/erik/Documents/ApacheFlex/git/flex-asjs/frameworks/js/FlexJS/src/org/apache/flex/utils/Language.js ./org/apache/flex/utils/Language.js + +# copy flash.utils.IDataInput and refactor to flash.utils.IDataInput2 +cp ./flash/utils/IDataInput.js ./flash/utils/IDataInput2.js +sed -i '' -e "s/IDataInput/IDataInput2/g" ./flash/utils/IDataInput2.js + +# copy flash.utils.IDataOutput and refactor to flash.utils.IDataOutput2 +cp ./flash/utils/IDataOutput.js ./flash/utils/IDataOutput2.js +sed -i '' -e "s/IDataOutput/IDataOutput2/g" ./flash/utils/IDataOutput2.js + +# Remove 'wrong' chars from mx/utils/StringUtil.js +sed -i '' -e 's/â¨//g' ./mx/utils/StringUtil.js +sed -i '' -e 's/â©//g' ./mx/utils/StringUtil.js + +# Remove 'wrong' char from spark/components/Label.js +sed -i '' -e 's/â©//g' ./spark/components/Label.js + +# Remove 'wrong' public namespace reference from mx/styles/CSSStyleDeclaration.js +sed -i '' -e 's/public\.this\.setStyle/this\.setStyle/g' ./mx/styles/CSSStyleDeclaration.js + +# Add missing namespace to flash/geom/Vector3D.js +sed -i '' -e 's/= Vector3D/= flash.geom.Vector3D/g' ./flash/geom/Vector3D.js + +# Remove namespace from Vector type in spark/components/DataGroup.js +sed -i '' -e 's/Vector\.<mx\.core\.IVisualElement>/Vector/g' ./spark/components/DataGroup.js + +# Remove "difficult" interface reference from mx/core/UIComponent.js +sed -i '' -e 's/, mx.validators.IValidatorListener, /, /g' ./mx/core/UIComponent.js + +# Remove goog.require from spark.layouts.supportClasses.LinearLayoutVector +tr '\n' '#' < ./spark/layouts/supportClasses/LinearLayoutVector.js > ./spark/layouts/supportClasses/LinearLayoutVector.js_temp +sed -i '' -e "s/#goog.require('spark.layouts.supportClasses.Block');//g" ./spark/layouts/supportClasses/LinearLayoutVector.js_temp +tr '#' '\n' < ./spark/layouts/supportClasses/LinearLayoutVector.js_temp > ./spark/layouts/supportClasses/LinearLayoutVector.js +rm ./spark/layouts/supportClasses/LinearLayoutVector.js_temp + +# Add 'global' goog.require to mx.managers.SystemManager +tr '\n' '#' < ./mx/managers/SystemManager.js > ./mx/managers/SystemManager.js_temp + +sed -i '' -e "s/####\/\*\*/##goog.require('org.apache.flex.utils.Language');&/g" ./mx/managers/SystemManager.js_temp + +sed -i '' -e "s/####\/\*\*/##goog.require('mx.core.EmbeddedFontRegistry');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.styles.StyleManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.BrowserManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.CursorManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.HistoryManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.LayoutManager');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.PopUpManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.ToolTipManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.DragManagerImpl');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.core.TextFieldFactory');&/g" ./mx/managers/SystemManager.js_temp + +sed -i '' -e "s/####\/\*\*/##goog.require('Class');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('int');&/g" ./mx/managers/SystemManager.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('QName');&/g" ./mx/managers/SystemManager.js_temp + +sed -i '' -e "s/####\/\*\*/##goog.require('mx.preloaders.DownloadProgressBar');&/g" ./mx/managers/SystemManager.js_temp + +sed -i '' -e "s/####\/\*\*/##goog.require('mx.managers.systemClasses.ChildManager');&/g" ./mx/managers/SystemManager.js_temp + +sed -i '' -e "s/mx\.managers\.SystemManager = function() {# /mx\.managers\.SystemManager = function() {# window['apache-flex_system-manager'] = this;#/g" ./mx/managers/SystemManager.js_temp + +tr '#' '\n' < ./mx/managers/SystemManager.js_temp > ./mx/managers/SystemManager.js +rm ./mx/managers/SystemManager.js_temp + +# Add 'missing' (?) goog.require to mx.skins.halo.HaloFocusRect +tr '\n' '#' < ./mx/skins/halo/HaloFocusRect.js > ./mx/skins/halo/HaloFocusRect.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.skins.ProgrammaticSkin');&/g" ./mx/skins/halo/HaloFocusRect.js_temp +tr '#' '\n' < ./mx/skins/halo/HaloFocusRect.js_temp > ./mx/skins/halo/HaloFocusRect.js +rm ./mx/skins/halo/HaloFocusRect.js_temp + +# Add 'missing' (?) goog.require to mx.preloaders.DownloadProgressBar +tr '\n' '#' < ./mx/preloaders/DownloadProgressBar.js > ./mx/preloaders/DownloadProgressBar.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.geom.RoundedRectangle');&/g" ./mx/preloaders/DownloadProgressBar.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.preloaders.IPreloaderDisplay');&/g" ./mx/preloaders/DownloadProgressBar.js_temp +tr '#' '\n' < ./mx/preloaders/DownloadProgressBar.js_temp > ./mx/preloaders/DownloadProgressBar.js +rm ./mx/preloaders/DownloadProgressBar.js_temp + +# Add 'missing' (?) goog.require to mx.skins.halo.ToolTipBorder +tr '\n' '#' < ./mx/skins/halo/ToolTipBorder.js > ./mx/skins/halo/ToolTipBorder.js_temp +sed -i '' -e "s/####\/\*\*/##goog.require('mx.skins.RectangularBorder');&/g" ./mx/skins/halo/ToolTipBorder.js_temp +tr '#' '\n' < ./mx/skins/halo/ToolTipBorder.js_temp > ./mx/skins/halo/ToolTipBorder.js +rm ./mx/skins/halo/ToolTipBorder.js_temp + +# Move property to below static method in mx.binding.Binding +tr '\n' '#' < ./mx/binding/Binding.js > ./mx/binding/Binding.js_temp +sed -i '' -e "s/###\/\*\*# \* @type {Object}# \*\/#mx.binding.Binding.allowedErrors = mx.binding.Binding.generateAllowedErrors();//g" ./mx/binding/Binding.js_temp +sed -i '' -e "s/ o\[2005\] = 1;# return o;#};/ o\[2005\] = 1;# return o;#};###\/\*\*# \* @type {Object}# \*\/#mx.binding.Binding.allowedErrors = mx.binding.Binding.generateAllowedErrors();/g" ./mx/binding/Binding.js_temp +tr '#' '\n' < ./mx/binding/Binding.js_temp > ./mx/binding/Binding.js +rm ./mx/binding/Binding.js_temp + + + +cd ${ROOT} +#pwd + +# create 'deps.js' for SDK + FP JS classes +./JSFlexSDKDeps.sh http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/cde5a713/vf2js/utils/FlexSDKToJS/JSFlexSDKDeps.sh ---------------------------------------------------------------------- diff --git a/vf2js/utils/FlexSDKToJS/JSFlexSDKDeps.sh b/vf2js/utils/FlexSDKToJS/JSFlexSDKDeps.sh new file mode 100755 index 0000000..325108f --- /dev/null +++ b/vf2js/utils/FlexSDKToJS/JSFlexSDKDeps.sh @@ -0,0 +1 @@ +/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure/library/closure/bin/build/depswriter.py --root_with_prefix="/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure/library/closure/goog ../../../../../bin/js-debug/library/closure/goog" --root_with_prefix="../../frameworks/js/vf2js ../../../../../bin/js-debug" > ../../frameworks/js/sdk-deps.js http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/cde5a713/vf2js/utils/FlexSDKToJS/TextLayoutToJS.sh ---------------------------------------------------------------------- diff --git a/vf2js/utils/FlexSDKToJS/TextLayoutToJS.sh b/vf2js/utils/FlexSDKToJS/TextLayoutToJS.sh new file mode 100755 index 0000000..329b5eb --- /dev/null +++ b/vf2js/utils/FlexSDKToJS/TextLayoutToJS.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +ARGS="" +ARGS="$ARGS +env.PLAYERGLOBAL_HOME="/Users/erik/Documents/apacheFlex/dependencies/PlayerGlobal/player" " +ARGS="$ARGS +playerglobal.version=15.0 " +ARGS="$ARGS +source.dir="/Users/erik/Documents/ApacheFlex/git/flex-tlf/TextLayout" " + +ARGS="$ARGS -define=CONFIG::debug,false " +ARGS="$ARGS -define=CONFIG::release,true " + +ARGS="$ARGS -load-config+="/Users/erik/Documents/ApacheFlex/git/flex-tlf/compile-config.xml" " + +ARGS="$ARGS -ignore-problems=org.apache.flex.compiler.problems.DuplicateSkinStateProblem " +ARGS="$ARGS -ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem " +ARGS="$ARGS -ignore-problems=org.apache.flex.compiler.problems.NoDefinitionForSWCDependencyProblem " + +ARGS="$ARGS -js-output-type=VF2JS " + +ARGS="$ARGS -closure-lib="/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure/library" " + +ARGS="$ARGS -output="/Users/erik/Documents/ApacheFlex/git/flex-asjs/vf2js/frameworks/js/vf2js" " + +java -jar "/Users/erik/Documents/ApacheFlex/git/flex-falcon/compiler.jx/lib/compc.jar" ${ARGS}
