Skip to content

Commit

Permalink
Merge pull request #7 from dumganhar/master
Browse files Browse the repository at this point in the history
Adds travis-ci support and some fixes.
  • Loading branch information
James Chen committed Feb 26, 2014
2 parents 60c9a7a + d151974 commit db855b7
Show file tree
Hide file tree
Showing 16 changed files with 1,206 additions and 3 deletions.
18 changes: 18 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
language: cpp
script:
- export PYTHON_BIN=/usr/bin/python
- ./tools/travis-scripts/run-script.sh
before_install:
- ./tools/travis-scripts/before-install.sh
env:
matrix:
- GEN_BINDINGS=YES
- PLATFORM=android
global:
- secure: FlC71LfwoBQ0mvJnxLdScFunhWKTvpQhbheLneWBbEFYpRFiMBwBbkZ9CIgYwzVQA7Zf7smhPXJMWuch0R9332uc7H7WDx6l7iOW0tVxwCHP2BSkfIFXU433AQeS4/5OgZU8bJDUOoJKqNC0EpkQ+6elhuAnR4MP/KGx6mKtGU0=
- secure: jZyWJln6/IQ0p0iSSsZOpifEZaW+M4tdaYiJt6Q+CL6GanJd9F2nP0tJdEGBOx2KKGWcyY0KKibO2xg6CBZnsmGxjU4G2QDIcQBtUFq+iKwkLIQ31jMqEGV6zPJVLMMNUfoOAKMppCgukyoPy7ugThuReHMAbjyy4AkKKjx4o9Q=
- secure: gdYnnweKE19bzSrd728t21tIWeNIVhChd58WtIuA6SbJg5WsGScyFXtaA3NxmcGaAjIU9GC3zGfxH1upWMinypO3W+XUsZtRmOvIkPMDQjdPA9wNu4ekKNsytUjIcuG2T5+m0dZbHCtLcMELekZ5aazNgsk1F20xpbSSnVr2u5E=
branches:
only:
- master
- develop
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<img src="http://www.cocos2d-x.org/attachments/801/cocos2dx_portrait.png" width=200>

cocos2d-js
==========
===========

cocos2d-x JS
[![Build Status](https://travis-ci.org/cocos2d/cocos2d-js.png?branch=master)](https://travis-ci.org/cocos2d/cocos2d-js)
24 changes: 24 additions & 0 deletions jsb/tests-project/proj.win32/TestJavascript.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,30 @@ xcopy "$(ProjectDir)..\..\..\tests" "$(OutDir)\TestJavascriptRes\" /e /Y</Comman
<ResourceCompile Include="testjs.rc" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForBuilder.vcxproj">
<Project>{f9da0fc1-651b-457b-962e-a4d61cebf5fd}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForChipmunk.vcxproj">
<Project>{21070e58-eec6-4e16-8b4f-6d083df55790}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForExtension.vcxproj">
<Project>{625f7391-9a91-48a1-8cfc-79508c822637}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForGui.vcxproj">
<Project>{9a844c88-97e8-4e2d-b09a-e138c67d338b}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForLocalStorage.vcxproj">
<Project>{68f5f371-bd7b-4c30-ae5b-0b08f22e0cde}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForNetwork.vcxproj">
<Project>{3bec13f5-e227-4d80-bc77-1c857f83bcfc}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForSpine.vcxproj">
<Project>{e78cdc6b-f37d-48d2-ad91-1db549497e32}</Project>
</ProjectReference>
<ProjectReference Include="..\..\bindings\proj.win32\libJSBindingForStudio.vcxproj">
<Project>{79d34511-e54e-410a-8bba-ef175ad6c695}</Project>
</ProjectReference>
<ProjectReference Include="..\..\cocos2d-x\cocos\2d\cocos2d.vcxproj">
<Project>{98a51ba8-fc3a-415b-ac8f-8c7bd464e93e}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
Expand Down
2 changes: 1 addition & 1 deletion tools/bindings-generator
Submodule bindings-generator updated 64 files
+1 −0 .gitignore
+49 −14 README.md
+24 −0 backup/clang-llvm-3.3-pybinding/__init__.py
+3,253 −0 backup/clang-llvm-3.3-pybinding/cindex.py
+34 −0 backup/clang-llvm-3.3-pybinding/enumerations.py
+1,446 −567 clang/cindex.py
+34 −0 clang/enumerations.py
+298 −64 generator.py
+1 −0 libclang/VERSION.txt
+ libclang/libclang.dll
+ libclang/libclang.dylib
+ libclang/libclang.so
+107 −0 targets/lua/conversions.yaml
+1 −0 targets/lua/templates/apidoc_classfoot.js
+11 −0 targets/lua/templates/apidoc_classhead.js
+16 −0 targets/lua/templates/apidoc_function.js
+12 −0 targets/lua/templates/apidoc_ns.js
+1 −0 targets/lua/templates/function.h
+118 −0 targets/lua/templates/ifunction.c
+113 −0 targets/lua/templates/ifunction_overloaded.c
+4 −0 targets/lua/templates/lambda.c
+22 −0 targets/lua/templates/layout_foot.c
+2 −0 targets/lua/templates/layout_foot.h
+8 −0 targets/lua/templates/layout_head.c
+12 −0 targets/lua/templates/layout_head.h
+1 −0 targets/lua/templates/prelude.c
+1 −0 targets/lua/templates/prelude.h
+71 −0 targets/lua/templates/register.c
+81 −0 targets/lua/templates/sfunction.c
+80 −0 targets/lua/templates/sfunction_overloaded.c
+0 −29 targets/spidermonkey/common/Android.mk.example
+0 −50 targets/spidermonkey/common/Debugger.md
+0 −1,144 targets/spidermonkey/common/ScriptingCore.cpp.example
+0 −227 targets/spidermonkey/common/ScriptingCore.h.example
+0 −628 targets/spidermonkey/common/debugger.js.example
+ targets/spidermonkey/common/debugger1.png
+ targets/spidermonkey/common/debugger2.png
+0 −363 targets/spidermonkey/common/helper.js.example
+0 −29 targets/spidermonkey/common/js_bindings_config.h.example
+0 −301 targets/spidermonkey/common/js_manual_conversions.cpp.example
+0 −37 targets/spidermonkey/common/js_manual_conversions.h.example
+0 −57 targets/spidermonkey/common/sample.js
+0 −85 targets/spidermonkey/common/spidermonkey_specifics.h.example
+0 −985 targets/spidermonkey/common/uthash.h
+58 −34 targets/spidermonkey/conversions.yaml
+1 −1 targets/spidermonkey/templates/function.h
+20 −14 targets/spidermonkey/templates/ifunction.c
+21 −15 targets/spidermonkey/templates/ifunction_overloaded.c
+39 −0 targets/spidermonkey/templates/lambda.c
+3 −3 targets/spidermonkey/templates/layout_foot.c
+34 −19 targets/spidermonkey/templates/layout_head.c
+2 −3 targets/spidermonkey/templates/prelude.c
+3 −3 targets/spidermonkey/templates/prelude.h
+33 −43 targets/spidermonkey/templates/register.c
+12 −8 targets/spidermonkey/templates/sfunction.c
+12 −8 targets/spidermonkey/templates/sfunction_overloaded.c
+89 −0 test/test.bat
+12 −1 test/test.ini
+86 −55 test/test.sh
+1 −1 test/userconf.ini.sample
+ tools/win32/cygiconv-2.dll
+ tools/win32/cygintl-8.dll
+ tools/win32/cygwin1.dll
+ tools/win32/dos2unix.exe
57 changes: 57 additions & 0 deletions tools/tojs/README.mdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
How to Use bindings-generator
==================

On Windows:
------------

* Make sure that you have installed `android-ndk-r9b`.
* Download python2.7.3 (32bit) from (http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi).
* Add the installed path of python (e.g. C:\Python27) to windows environment variable named 'PATH'.
* Download pyyaml from http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe and install it.
* Download pyCheetah from https://raw.github.com/dumganhar/cocos2d-x/download/downloads/Cheetah.zip, unzip it to "C:\Python27\Lib\site-packages"
* Set environment variables (`NDK_ROOT`)
* Go to "cocos2d-x/tools/tojs" folder, and run "genbindings.py". The generated codes will be under "cocos\scripting\auto-generated\js-bindings".


On MAC:
----------

* The OSX 10.9 has a built-in python2.7 and if your os don't have python2.7 then use [Homebrew](http://brew.sh/) to install the python and use pip install the python dependencies.
<pre>
brew install python
</pre>

* Install python dependices by pip.
<pre>
sudo easy_install pip
sudo pip install PyYAML
sudo pip install Cheetah
</pre>

* Download [64bit ndk-r9b-x86_64](http://dl.google.com/android/ndk/android-ndk-r9b-darwin-x86_64.tar.bz2) from [google](http://developer.android.com/tools/sdk/ndk/index.html)
* Run
<pre>
export NDK_ROOT=/path/to/android-ndk-r9b
./genbindings.py
</pre>


On Ubuntu Linux 12.04 64bit
------------

* Install python
<pre>
sudo apt-get install python2.7
</pre>
* Install python dependices by pip.
<pre>
sudo apt-get install python-pip
sudo pip install PyYAML
sudo pip install Cheetah
</pre>
* Download [64bit ndk-r9b-x86_64]( https://dl.google.com/android/ndk/android-ndk-r9b-linux-x86_64.tar.bz2) from [google](http://developer.android.com/tools/sdk/ndk/index.html)
* Go to "cocos2d-x/tools/tojs", Run
<pre>
export NDK_ROOT=/path/to/android-ndk-r9b
./genbindings.py
</pre>
151 changes: 151 additions & 0 deletions tools/tojs/cocos2dx.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
[cocos2d-x]
# the prefix to be added to the generated functions. You might or might not use this in your own
# templates
prefix = cocos2dx

# create a target namespace (in javascript, this would create some code like the equiv. to `ns = ns || {}`)
# all classes will be embedded in that namespace
target_namespace = cc

android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/include
android_flags = -D_SIZE_T_DEFINED_

clang_headers = -I%(clangllvmdir)s/lib/clang/3.3/include
clang_flags = -nostdinc -x c++ -std=c++11

cocos_headers = -I%(cocosdir)s/cocos/2d -I%(cocosdir)s/cocos/base -I%(cocosdir)s/cocos/physics -I%(cocosdir)s/cocos/2d/platform -I%(cocosdir)s/cocos/2d/platform/android -I%(cocosdir)s/cocos/math/kazmath/include
cocos_flags = -DANDROID -DCOCOS2D_JAVASCRIPT

cxxgenerator_headers =

# extra arguments for clang
extra_arguments = %(android_headers)s %(clang_headers)s %(cxxgenerator_headers)s %(cocos_headers)s %(android_flags)s %(clang_flags)s %(cocos_flags)s %(extra_flags)s

# what headers to parse
headers = %(cocosdir)s/cocos/2d/cocos2d.h %(cocosdir)s/cocos/audio/include/SimpleAudioEngine.h

# what classes to produce code for. You can use regular expressions here. When testing the regular
# expression, it will be enclosed in "^$", like this: "^Menu*$".
classes = New.* Sprite.* Scene Node.* Director Layer.* Menu.* Touch .*Action.* Move.* Rotate.* Blink.* Tint.* Sequence Repeat.* Fade.* Ease.* Scale.* Transition.* Spawn Animat.* Flip.* Delay.* Skew.* Jump.* Place.* Show.* Progress.* PointArray ToggleVisibility.* RemoveSelf Hide Particle.* Label.* Atlas.* TextureCache.* Texture2D Cardinal.* CatmullRom.* ParallaxNode TileMap.* TMX.* CallFunc RenderTexture GridAction Grid3DAction GridBase$ .+Grid Shaky3D Waves3D FlipX3D FlipY3D Speed ActionManager Set SimpleAudioEngine Scheduler Orbit.* Follow.* Bezier.* CardinalSpline.* Camera.* DrawNode .*3D$ Liquid$ Waves$ ShuffleTiles$ TurnOffTiles$ Split.* Twirl$ FileUtils$ GLProgram ShaderCache Application ClippingNode MotionStreak TextFieldTTF GLViewProtocol GLView Component __NodeRGBA __LayerRGBA SAXParser


classes_need_extend = Node Layer.* Sprite MenuItemFont Scene DrawNode

# what should we skip? in the format ClassName::[function function]
# ClassName is a regular expression, but will be used like this: "^ClassName$" functions are also
# regular expressions, they will not be surrounded by "^$". If you want to skip a whole class, just
# add a single "*" as functions. See bellow for several examples. A special class name is "*", which
# will apply to all class names. This is a convenience wildcard to be able to skip similar named
# functions from all classes.

skip = Node::[^setPosition$ setGLServerState description getUserObject .*UserData getGLServerState .*schedule setContentSize setAnchorPoint],
Sprite::[getQuad getBlendFunc ^setPosition$ setBlendFunc],
NodeGrid::[setGrid],
SpriteBatchNode::[getBlendFunc setBlendFunc getDescendants],
MotionStreak::[getBlendFunc setBlendFunc draw update],
AtlasNode::[getBlendFunc setBlendFunc],
ParticleBatchNode::[getBlendFunc setBlendFunc],
LayerColor::[getBlendFunc setBlendFunc],
ParticleSystem::[getBlendFunc setBlendFunc],
DrawNode::[getBlendFunc setBlendFunc drawPolygon listenBackToForeground],
Director::[getAccelerometer (g|s)et.*Dispatcher getOpenGLView getProjection getFrustum getRenderer getConsole],
Layer.*::[didAccelerate (g|s)etBlendFunc keyPressed keyReleased],
Menu.*::[.*Target getSubItems create initWithItems alignItemsInRows alignItemsInColumns],
MenuItem.*::[create setCallback initWithCallback],
Copying::[*],
LabelProtocol::[*],
LabelTextFormatProtocol::[*],
Label::[getLettersInfo createWithTTF setTTFConfig getFontAtlas],
.*Delegate::[*],
PoolManager::[*],
Texture2D::[initWithPVRTCData addPVRTCImage releaseData setTexParameters initWithData keepData getPixelFormatInfoMap],
Set::[begin end acceptVisitor],
IMEDispatcher::[*],
Thread::[*],
Profiler::[*],
ProfilingTimer::[*],
CallFunc::[create initWithFunction (g|s)etTargetCallback],
SAXParser::[(?!(init))],
SAXDelegator::[*],
Color3bObject::[*],
TouchDispatcher::[*],
EGLTouchDelegate::[*],
ScriptEngineManager::[*],
KeypadHandler::[*],
Invocation::[*],
GLView::[end swapBuffers],
GLViewProtocol::[(?!setDesignResolutionSize|getVisibleSize|getVisibleOrigin)],
SchedulerScriptHandlerEntry::[*],
Size::[*],
Point::[*],
PointArray::[*],
Rect::[*],
String::[*],
Data::[*],
Dictionary::[*],
Array::[*],
Range::[*],
NotificationObserver::[*],
Image::[initWithString initWithImageData],
Sequence::[create],
Spawn::[create],
Animation::[create],
GLProgram::[getProgram setUniformLocationWith2f.* setUniformLocationWith1f.* setUniformLocationWith3f.* setUniformLocationWith4f.*],
Grid3DAction::[create actionWith.* vertex originalVertex (g|s)etVertex getOriginalVertex],
Grid3D::[vertex originalVertex (g|s)etVertex getOriginalVertex],
TiledGrid3DAction::[create actionWith.* tile originalTile getOriginalTile (g|s)etTile],
TiledGrid3D::[tile originalTile getOriginalTile (g|s)etTile],
TMXLayer::[getTiles],
TMXMapInfo::[startElement endElement textHandler],
ParticleSystemQuad::[postStep setBatchNode draw setTexture$ setTotalParticles updateQuadWithParticle setupIndices listenBackToForeground initWithTotalParticles particleWithFile node],
LayerMultiplex::[create layerWith.* initWithLayers],
CatmullRom.*::[create actionWithDuration],
Bezier.*::[create actionWithDuration],
CardinalSpline.*::[create actionWithDuration setPoints],
Scheduler::[pause resume unschedule schedule update isTargetPaused],
TextureCache::[addPVRTCImage addImageAsync],
*::[copyWith.* onEnter.* onExit.* ^description$ getObjectType onTouch.* onAcc.* onKey.* onRegisterTouchListener],
FileUtils::[(g|s)etSearchResolutionsOrder$ (g|s)etSearchPaths$ getFileData getDataFromFile getWritablePath setPopupNotify destroyInstance getFullPathCache],
Application::[^application.* ^run$],
Camera::[getEyeXYZ getCenterXYZ getUpXYZ],
ccFontDefinition::[*],
NewTextureAtlas::[*],
RenderTexture::[listenToBackground listenToForeground],
TextFieldTTF::[(g|s)etDelegate]

rename_functions = SpriteFrameCache::[addSpriteFramesWithFile=addSpriteFrames getSpriteFrameByName=getSpriteFrame],
MenuItemFont::[setFontNameObj=setFontName setFontSizeObj=setFontSize getFontSizeObj=getFontSize getFontNameObj=getFontName],
ProgressTimer::[setReverseProgress=setReverseDirection],
AnimationCache::[addAnimationsWithFile=addAnimations],
LayerGradient::[initWithColor=init],
LayerColor::[initWithColor=init],
GLProgram::[initWithVertexShaderByteArray=initWithString initWithVertexShaderFilename=init programLog=getProgramLog setUniformLocationWith1i=setUniformLocationI32],
Node::[removeFromParentAndCleanup=removeFromParent removeAllChildrenWithCleanup=removeAllChildren getLocalZOrder=getZOrder setLocalZOrder=setZOrder],
LabelAtlas::[create=_create],
Sprite::[initWithFile=init],
SpriteBatchNode::[initWithFile=init removeAllChildrenWithCleanup=removeAllChildren],
Touch::[getID=getId],
SimpleAudioEngine::[preloadBackgroundMusic=preloadMusic setBackgroundMusicVolume=setMusicVolume getBackgroundMusicVolume=getMusicVolume playBackgroundMusic=playMusic stopBackgroundMusic=stopMusic pauseBackgroundMusic=pauseMusic resumeBackgroundMusic=resumeMusic rewindBackgroundMusic=rewindMusic isBackgroundMusicPlaying=isMusicPlaying willPlayBackgroundMusic=willPlayMusic],
FileUtils::[loadFilenameLookupDictionaryFromFile=loadFilenameLookup]

rename_classes = ParticleSystemQuad::ParticleSystem,
SimpleAudioEngine::AudioEngine,
__NodeRGBA::NodeRGBA,
__LayerRGBA::LayerRGBA

# for all class names, should we remove something when registering in the target VM?
remove_prefix =

# classes for which there will be no "parent" lookup
classes_have_no_parents = Node Director SimpleAudioEngine FileUtils TMXMapInfo Application GLViewProtocol SAXParser

# base classes which will be skipped when their sub-classes found them.
base_classes_to_skip = Ref Clonable

# classes that create no constructor
# Set is special and we will use a hand-written constructor
abstract_classes = Action FiniteTimeAction ActionInterval ActionEase EaseRateAction EaseElastic EaseBounce ActionInstant GridAction Grid3DAction TiledGrid3DAction Director SpriteFrameCache TransitionEaseScene Set SimpleAudioEngine FileUtils Application ClippingNode Label GLViewProtocol GLView Component SAXParser

# Determining whether to use script object(js object) to control the lifecycle of native(cpp) object or the other way around. Supported values are 'yes' or 'no'.
script_control_cpp = no

65 changes: 65 additions & 0 deletions tools/tojs/cocos2dx_builder.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[cocos2dx_builder]
# the prefix to be added to the generated functions. You might or might not use this in your own
# templates
prefix = cocos2dx_builder

# create a target namespace (in javascript, this would create some code like the equiv. to `ns = ns || {}`)
# all classes will be embedded in that namespace
target_namespace = cc

android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/include
android_flags = -D_SIZE_T_DEFINED_

clang_headers = -I%(clangllvmdir)s/lib/clang/3.3/include
clang_flags = -nostdinc -x c++ -std=c++11

cocos_headers = -I%(cocosdir)s/cocos/2d -I%(cocosdir)s/cocos/base -I%(cocosdir)s/cocos/gui -I%(cocosdir)s/cocos/physics -I%(cocosdir)s/cocos/2d/platform -I%(cocosdir)s/cocos/2d/platform/android -I%(cocosdir)s/cocos/math/kazmath/include -I%(cocosdir)s/extensions -I%(cocosdir)s/external -I%(cocosdir)s/cocos/editor-support -I%(cocosdir)s

cocos_flags = -DANDROID -DCOCOS2D_JAVASCRIPT

cxxgenerator_headers =

# extra arguments for clang
extra_arguments = %(android_headers)s %(clang_headers)s %(cxxgenerator_headers)s %(cocos_headers)s %(android_flags)s %(clang_flags)s %(cocos_flags)s %(extra_flags)s

# what headers to parse
headers = %(cocosdir)s/cocos/editor-support/cocosbuilder/CocosBuilder.h

# what classes to produce code for. You can use regular expressions here. When testing the regular
# expression, it will be enclosed in "^$", like this: "^Menu*$".
classes = CCBReader.* CCBAnimationManager.*

# what should we skip? in the format ClassName::[function function]
# ClassName is a regular expression, but will be used like this: "^ClassName$" functions are also
# regular expressions, they will not be surrounded by "^$". If you want to skip a whole class, just
# add a single "*" as functions. See bellow for several examples. A special class name is "*", which
# will apply to all class names. This is a convenience wildcard to be able to skip similar named
# functions from all classes.

skip = CCBReader::[^CCBReader$ addOwnerCallbackName isJSControlled readByte getCCBMemberVariableAssigner readFloat getCCBSelectorResolver toLowerCase lastPathComponent deletePathExtension endsWith concat getResolutionScale getAnimatedProperties readBool readInt addOwnerCallbackNode addDocumentCallbackName readCachedString readNodeGraphFromData addDocumentCallbackNode getLoadedSpriteSheet initWithData readFileWithCleanUp getOwner$ readNodeGraphFromFile createSceneWithNodeGraphFromFile getAnimationManagers$ setAnimationManagers],
CCBAnimationManager::[setAnimationCompletedCallback addNode getSequences getDelegate],
.*Delegate::[*],
.*Loader.*::[*],
*::[^visit$ copyWith.* onEnter.* onExit.* ^description$ getObjectType .*HSV onTouch.* onAcc.* onKey.* onRegisterTouchListener]

rename_functions =

rename_classes = CCBReader::_Reader,
CCBAnimationManager::BuilderAnimationManager

# for all class names, should we remove something when registering in the target VM?
remove_prefix =

# classes for which there will be no "parent" lookup
classes_have_no_parents =

# base classes which will be skipped when their sub-classes found them.
base_classes_to_skip = Ref

# classes that create no constructor
# Set is special and we will use a hand-written constructor
abstract_classes =

# Determining whether to use script object(js object) to control the lifecycle of native(cpp) object or the other way around. Supported values are 'yes' or 'no'.
script_control_cpp = no

Loading

0 comments on commit db855b7

Please sign in to comment.