[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 Timer Orbit.* Follow.* Bezier.* CardinalSpline.* Camera.* DrawNode .*3D$ Liquid$ Waves$ ShuffleTiles$ TurnOffTiles$ Split.* Twirl$ FileUtils$ GLProgram ShaderCache Application ClippingNode MotionStreak TextFieldTTF EGLViewProtocol EGLView 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],
        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],
        .*Delegate::[*],
        PoolManager::[*],
        Texture2D::[initWithPVRTCData addPVRTCImage releaseData setTexParameters initWithData keepData getPixelFormatInfoMap],
        Set::[begin end acceptVisitor],
        IMEDispatcher::[*],
        Thread::[*],
        Profiler::[*],
        ProfilingTimer::[*],
        CallFunc::[create initWithFunction],
        SAXParser::[(?!(init))],
        SAXDelegator::[*],
        Color3bObject::[*],
        TouchDispatcher::[*],
        EGLTouchDelegate::[*],
        ScriptEngineManager::[*],
        KeypadHandler::[*],
        Invocation::[*],
        EGLView::[end swapBuffers],
        EGLViewProtocol::[(?!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],
        Timer::[getSelector createWithScriptHandler],
        *::[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]

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 EGLViewProtocol SAXParser

# base classes which will be skipped when their sub-classes found them.
base_classes_to_skip = Object 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 EGLViewProtocol EGLView 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