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}

Reply via email to