按 Eclipse 开发喜好重新布置 cocos2dx 目录层次

【tonyfield 2013.08.29 】

1.  Cocos2dx 库的改动

处于个人的固执,花一天时间重新布置了cocos2dx 2.1.4的目录层次,将android平台无关的代码全数裁剪,代码按模块置于 jni 下,主要分为

cocos2d, CocosDenshion, extensions, external,third_party 5个主要模块,其中 NDK中已有的 AssetManager及GLES/SLES头文件全部删除,只要包含路径含有 ${NDK_ROOT}/platforms/android-8/arch-arm/usr/include,则这些文件没必要复制在工程中。目录结构如下:

 

.

├── cocos2dx

│   ├── actions

│   ├── base_nodes

│   ├── cocoa

│   ├── draw_nodes

│   ├── effects

│   ├── include

│   ├── kazmath

│   │   ├── include

│   │   │   └── kazmath

│   │   │       └── GL

│   │   └── src

│   │       └── GL

│   ├── keypad_dispatcher

│   ├── label_nodes

│   ├── layers_scenes_transitions_nodes

│   ├── menu_nodes

│   ├── misc_nodes

│   ├── particle_nodes

│   ├── platform

│   │   └── android

│   │       └── jni

│   ├── script_support

│   ├── shaders

│   ├── sprite_nodes

│   ├── support

│   │   ├── component

│   │   ├── data_support

│   │   ├── image_support

│   │   ├── tinyxml2

│   │   ├── user_default

│   │   └── zip_support

│   ├── text_input_node

│   ├── textures

│   ├── tilemap_parallax_nodes

│   └── touch_dispatcher

├── CocosDenshion

│   ├── include

│   ├── jni

│   └── opensl

├── extensions

│   ├── AssetsManager

│   ├── CCArmature

│   │   ├── animation

│   │   ├── datas

│   │   ├── display

│   │   ├── external_tool

│   │   │   └── Json

│   │   │       └── lib_json

│   │   ├── physics

│   │   └── utils

│   ├── CCBReader

│   ├── Components

│   ├── GUI

│   │   ├── CCControlExtension

│   │   ├── CCEditBox

│   │   └── CCScrollView

│   ├── LocalStorage

│   ├── network

│   ├── physics_nodes

│   └── spine

├── external

│   ├── Box2D

│   │   ├── Collision

│   │   │   └── Shapes

│   │   ├── Common

│   │   ├── Dynamics

│   │   │   ├── Contacts

│   │   │   └── Joints

│   │   └── Rope

│   ├── chipmunk

│   │   ├── include

│   │   │   └── chipmunk

│   │   │       └── constraints

│   │   └── src

│   │       └── constraints

│   ├── emscripten

│   ├── libwebsockets

│   │   ├── include

│   │   └── lib

│   │       ├── armeabi

│   │       ├── armeabi-v7a

│   │       └── x86

│   └── sqlite3

│       ├── include

│       └── libraries

│           └── win32

└── third_party

    ├── libcurl

    │   ├── include

    │   │   └── curl

    │   └── libs

    │       ├── armeabi

    │       ├── armeabi-v7a

    │       └── x86

    ├── libjpeg

    │   ├── include

    │   └── libs

    │       ├── armeabi

    │       ├── armeabi-v7a

    │       └── x86

    ├── libpng

    │   ├── include

    │   └── libs

    │       ├── armeabi

    │       ├── armeabi-v7a

    │       └── x86

    ├── libtiff

    │   ├── include

    │   └── libs

    │       ├── armeabi

    │       ├── armeabi-v7a

    │       └── x86

    └── libwebp

        ├── include

        └── libs

            ├── armeabi

            ├── armeabi-v7a

            └── x86



119 directories


新的 Android.mk 内容为

 

 

LOCAL_PATH := $(call my-dir)



include $(CLEAR_VARS)



LOCAL_MODULE := cocos2dx_top



LOCAL_MODULE_FILENAME := libcocos2d_top



#LOCAL_WHOLE_STATIC_LIBRARIES := cocos_libpng_static

#LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static

#LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libxml2_static

#LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libtiff_static

#LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libwebp_static



COCOS2DX_PATH := $(LOCAL_PATH)/cocos2dx

LOCAL_EXPORT_C_INCLUDES := $(COCOS2DX_PATH) \

                    $(COCOS2DX_PATH)/include \

                    $(COCOS2DX_PATH)/kazmath/include \

                    $(COCOS2DX_PATH)/platform/android



# define the macro to compile through support/zip_support/ioapi.c

LOCAL_CFLAGS := -Wno-psabi -DUSE_FILE32API

LOCAL_EXPORT_CFLAGS := -Wno-psabi -DUSE_FILE32API



include $(BUILD_STATIC_LIBRARY)



$(call import-module,cocos2dx)

$(call import-module,CocosDenshion)

$(call import-module,extensions)



$(call import-module,external/Box2D)

$(call import-module,external/chipmunk)

$(call import-module,third_party/libcurl)

$(call import-module,third_party/libjpeg)

$(call import-module,third_party/libpng)

$(call import-module,third_party/libtiff)

$(call import-module,third_party/libwebp)


其中,LOCAL_WHOLE_STATIC_LIBRARIES 没必要定义了

 

2. TestCpp 的改动

 

复制导入TestCpp工程

 将公用类代码 /home/yourname/cocos2d-x-2.1.4/samples/Cpp/TestCpp/Classes 复制到 TestCpp/jni;

 将assets资源 /home/yourname/cocos2d-x-2.1.4/samples/Cpp/TestCpp/Resources 复制到 TestCpp/assets;


 添加 Eclipse 局部环境变量 COCOS2DX_ROOT 为第1节中项目的jni目录;

 在项目属性中添加第1节改好的 cocos2dx库

 Android.mk 改为

 

LOCAL_PATH := $(call my-dir)



include $(CLEAR_VARS)



LOCAL_MODULE := testcpp



LOCAL_MODULE_FILENAME := libtestcpp



LOCAL_SRC_FILES := testcpp/main.cpp \

Classes/AccelerometerTest/AccelerometerTest.cpp \

Classes/ActionManagerTest/ActionManagerTest.cpp \

Classes/ActionsTest/ActionsTest.cpp \

Classes/ActionsEaseTest/ActionsEaseTest.cpp \

Classes/ActionsProgressTest/ActionsProgressTest.cpp \

Classes/Box2DTest/Box2dTest.cpp \

Classes/Box2DTestBed/Box2dView.cpp \

Classes/Box2DTestBed/GLES-Render.cpp \

Classes/Box2DTestBed/Test.cpp \

Classes/Box2DTestBed/TestEntries.cpp \

Classes/BugsTest/Bug-1159.cpp \

Classes/BugsTest/Bug-1174.cpp \

Classes/BugsTest/Bug-350.cpp \

Classes/BugsTest/Bug-422.cpp \

Classes/BugsTest/Bug-624.cpp \

Classes/BugsTest/Bug-886.cpp \

Classes/BugsTest/Bug-899.cpp \

Classes/BugsTest/Bug-914.cpp \

Classes/BugsTest/BugsTest.cpp \

Classes/BugsTest/Bug-458/Bug-458.cpp \

Classes/BugsTest/Bug-458/QuestionContainerSprite.cpp \

Classes/ChipmunkTest/ChipmunkTest.cpp \

Classes/ClickAndMoveTest/ClickAndMoveTest.cpp \

Classes/ClippingNodeTest/ClippingNodeTest.cpp \

Classes/CocosDenshionTest/CocosDenshionTest.cpp \

Classes/CurlTest/CurlTest.cpp \

Classes/CurrentLanguageTest/CurrentLanguageTest.cpp \

Classes/DrawPrimitivesTest/DrawPrimitivesTest.cpp \

Classes/EffectsAdvancedTest/EffectsAdvancedTest.cpp \

Classes/EffectsTest/EffectsTest.cpp \

Classes/ExtensionsTest/ExtensionsTest.cpp \

Classes/ExtensionsTest/NotificationCenterTest/NotificationCenterTest.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlScene.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlSceneManager.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlButtonTest/CCControlButtonTest.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlColourPicker/CCControlColourPickerTest.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlPotentiometerTest/CCControlPotentiometerTest.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlSliderTest/CCControlSliderTest.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlStepperTest/CCControlStepperTest.cpp \

Classes/ExtensionsTest/ControlExtensionTest/CCControlSwitchTest/CCControlSwitchTest.cpp \

Classes/ExtensionsTest/CocosBuilderTest/CocosBuilderTest.cpp \

Classes/ExtensionsTest/CocosBuilderTest/HelloCocosBuilder/HelloCocosBuilderLayer.cpp \

Classes/ExtensionsTest/CocosBuilderTest/TestHeader/TestHeaderLayer.cpp \

Classes/ExtensionsTest/CocosBuilderTest/ButtonTest/ButtonTestLayer.cpp \

Classes/ExtensionsTest/CocosBuilderTest/MenuTest/MenuTestLayer.cpp \

Classes/ExtensionsTest/CocosBuilderTest/AnimationsTest/AnimationsTestLayer.cpp \

Classes/ExtensionsTest/CocosBuilderTest/TimelineCallbackTest/TimelineCallbackTestLayer.cpp \

Classes/ExtensionsTest/NetworkTest/HttpClientTest.cpp \

Classes/ExtensionsTest/NetworkTest/WebSocketTest.cpp \

Classes/ExtensionsTest/EditBoxTest/EditBoxTest.cpp \

Classes/ExtensionsTest/TableViewTest/TableViewTestScene.cpp \

Classes/ExtensionsTest/TableViewTest/CustomTableViewCell.cpp \

Classes/ExtensionsTest/ArmatureTest/ArmatureScene.cpp \

\

Classes/ExtensionsTest/ComponentsTest/ComponentsTestScene.cpp \

Classes/ExtensionsTest/ComponentsTest/EnemyController.cpp \

Classes/ExtensionsTest/ComponentsTest/GameOverScene.cpp \

Classes/ExtensionsTest/ComponentsTest/PlayerController.cpp \

Classes/ExtensionsTest/ComponentsTest/ProjectileController.cpp \

Classes/ExtensionsTest/ComponentsTest/SceneController.cpp \

\

Classes/FontTest/FontTest.cpp \

Classes/IntervalTest/IntervalTest.cpp \

Classes/KeypadTest/KeypadTest.cpp \

Classes/LabelTest/LabelTest.cpp \

Classes/LayerTest/LayerTest.cpp \

Classes/NodeTest/NodeTest.cpp \

Classes/TextInputTest/TextInputTest.cpp \

Classes/MenuTest/MenuTest.cpp \

Classes/MotionStreakTest/MotionStreakTest.cpp \

Classes/MutiTouchTest/MutiTouchTest.cpp \

Classes/ParallaxTest/ParallaxTest.cpp \

Classes/ParticleTest/ParticleTest.cpp \

Classes/PerformanceTest/PerformanceNodeChildrenTest.cpp \

Classes/PerformanceTest/PerformanceParticleTest.cpp \

Classes/PerformanceTest/PerformanceSpriteTest.cpp \

Classes/PerformanceTest/PerformanceTest.cpp \

Classes/PerformanceTest/PerformanceTextureTest.cpp \

Classes/PerformanceTest/PerformanceTouchesTest.cpp \

Classes/RenderTextureTest/RenderTextureTest.cpp \

Classes/RotateWorldTest/RotateWorldTest.cpp \

Classes/SceneTest/SceneTest.cpp \

Classes/SchedulerTest/SchedulerTest.cpp \

Classes/ShaderTest/ShaderTest.cpp \

Classes/SpineTest/SpineTest.cpp \

Classes/SpriteTest/SpriteTest.cpp \

Classes/TextureCacheTest/TextureCacheTest.cpp \

Classes/Texture2dTest/Texture2dTest.cpp \

Classes/TexturePackerEncryptionTest/TextureAtlasEncryptionTest.cpp \

Classes/TileMapTest/TileMapTest.cpp \

Classes/TouchesTest/Ball.cpp \

Classes/TouchesTest/Paddle.cpp \

Classes/TouchesTest/TouchesTest.cpp \

Classes/TransitionsTest/TransitionsTest.cpp \

Classes/UserDefaultTest/UserDefaultTest.cpp \

Classes/ZwoptexTest/ZwoptexTest.cpp \

Classes/FileUtilsTest/FileUtilsTest.cpp \

Classes/DataVisitorTest/DataVisitorTest.cpp \

Classes/ConfigurationTest/ConfigurationTest.cpp \

Classes/controller.cpp \

Classes/testBasic.cpp \

Classes/AppDelegate.cpp \

Classes/VisibleRect.cpp



#LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static

#LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static

#LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static

#LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static

#LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static



LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)

 

LOCAL_C_INCLUDES := $(LOCAL_PATH)/Classes \

					$(COCOS2DX_ROOT)/cocos2dx \

					$(COCOS2DX_ROOT)/cocos2dx/include \

					$(COCOS2DX_ROOT)/cocos2dx/kazmath/include \

					$(COCOS2DX_ROOT)/cocos2dx/platform/android \

					$(COCOS2DX_ROOT)/extensions \

					$(COCOS2DX_ROOT)/external \

					$(COCOS2DX_ROOT)/external/chipmunk/include/chipmunk \

					$(COCOS2DX_ROOT)/CocosDenshion/include \

					$(COCOS2DX_ROOT)/third_party/libcurl/include \

					$(COCOS2DX_ROOT)/extensions/network \

					$(COCOS2DX_ROOT)/external/libwebsockets/include

            

                   

include $(BUILD_STATIC_LIBRARY)

 

编译完成。值得注意的时,你不用再在mk文件末尾 添加(call import-module,external/Box2D) 语句,只要添加头文件包含路径。

【转载请注明来自blog.csdn.net/tonyfield 谢谢 2013.08.30 】


 

你可能感兴趣的:(cocos2dx)