mirror of https://github.com/axmolengine/axmol.git
issue #1489: update ios libcurl and add android project
This commit is contained in:
parent
27f093ea12
commit
c8baa94753
|
@ -1 +1 @@
|
||||||
37c991ae464a874685771db077196885dffed928
|
c135286e812602cc184684b59b4d074f723ef4a5
|
|
@ -5,7 +5,8 @@ LOCAL_MODULE := cocos_extension_static
|
||||||
|
|
||||||
LOCAL_MODULE_FILENAME := libextension
|
LOCAL_MODULE_FILENAME := libextension
|
||||||
|
|
||||||
LOCAL_SRC_FILES := CCBReader/CCBFileLoader.cpp \
|
LOCAL_SRC_FILES := AssetsManager/AssetsManager.cpp \
|
||||||
|
CCBReader/CCBFileLoader.cpp \
|
||||||
CCBReader/CCBReader.cpp \
|
CCBReader/CCBReader.cpp \
|
||||||
CCBReader/CCControlButtonLoader.cpp \
|
CCBReader/CCControlButtonLoader.cpp \
|
||||||
CCBReader/CCControlLoader.cpp \
|
CCBReader/CCControlLoader.cpp \
|
||||||
|
|
|
@ -109,6 +109,7 @@ bool AssetsManager::checkUpdate()
|
||||||
|
|
||||||
CURLcode res;
|
CURLcode res;
|
||||||
curl_easy_setopt(_curl, CURLOPT_URL, _versionFileUrl.c_str());
|
curl_easy_setopt(_curl, CURLOPT_URL, _versionFileUrl.c_str());
|
||||||
|
curl_easy_setopt(_curl, CURLOPT_SSL_VERIFYPEER, 0L);
|
||||||
curl_easy_setopt(_curl, CURLOPT_WRITEFUNCTION, getVersionCode);
|
curl_easy_setopt(_curl, CURLOPT_WRITEFUNCTION, getVersionCode);
|
||||||
curl_easy_setopt(_curl, CURLOPT_WRITEDATA, &_version);
|
curl_easy_setopt(_curl, CURLOPT_WRITEDATA, &_version);
|
||||||
res = curl_easy_perform(_curl);
|
res = curl_easy_perform(_curl);
|
||||||
|
|
|
@ -170,7 +170,9 @@ AssetsManager* UpdateLayer::getAssetsManager()
|
||||||
|
|
||||||
if (! pAssetsManager)
|
if (! pAssetsManager)
|
||||||
{
|
{
|
||||||
pAssetsManager = new AssetsManager("http://localhost/package.zip", "http://localhost/version", pathToSave.c_str());
|
pAssetsManager = new AssetsManager("https://raw.github.com/minggo/AssetsManagerTest/master/package.zip",
|
||||||
|
"https://raw.github.com/minggo/AssetsManagerTest/master/version",
|
||||||
|
pathToSave.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
return pAssetsManager;
|
return pAssetsManager;
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="org.cocos2dx.AssetsManagerTest"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0">
|
||||||
|
|
||||||
|
<uses-sdk android:minSdkVersion="8"/>
|
||||||
|
<uses-feature android:glEsVersion="0x00020000" />
|
||||||
|
|
||||||
|
<application android:label="@string/app_name"
|
||||||
|
android:icon="@drawable/icon">
|
||||||
|
|
||||||
|
<activity android:name=".AssetsManager"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:screenOrientation="landscape"
|
||||||
|
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
|
||||||
|
android:configChanges="orientation">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
</application>
|
||||||
|
<supports-screens android:largeScreens="true"
|
||||||
|
android:smallScreens="true"
|
||||||
|
android:anyDensity="true"
|
||||||
|
android:normalScreens="true"/>
|
||||||
|
</manifest>
|
|
@ -0,0 +1,17 @@
|
||||||
|
# This file is used to override default values used by the Ant build system.
|
||||||
|
#
|
||||||
|
# This file must be checked into Version Control Systems, as it is
|
||||||
|
# integral to the build system of your project.
|
||||||
|
|
||||||
|
# This file is only used by the Ant script.
|
||||||
|
|
||||||
|
# You can use this to override default values such as
|
||||||
|
# 'source.dir' for the location of your java source folder and
|
||||||
|
# 'out.dir' for the location of your output folder.
|
||||||
|
|
||||||
|
# You can also use it define how the release builds are signed by declaring
|
||||||
|
# the following properties:
|
||||||
|
# 'key.store' for the location of your keystore and
|
||||||
|
# 'key.alias' for the name of the key to use.
|
||||||
|
# The password will be asked during the build when you use the 'release' target.
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project name="AssetsManager" default="help">
|
||||||
|
|
||||||
|
<!-- The local.properties file is created and updated by the 'android' tool.
|
||||||
|
It contains the path to the SDK. It should *NOT* be checked into
|
||||||
|
Version Control Systems. -->
|
||||||
|
<property file="local.properties" />
|
||||||
|
|
||||||
|
<!-- The ant.properties file can be created by you. It is only edited by the
|
||||||
|
'android' tool to add properties to it.
|
||||||
|
This is the place to change some Ant specific build properties.
|
||||||
|
Here are some properties you may want to change/update:
|
||||||
|
|
||||||
|
source.dir
|
||||||
|
The name of the source directory. Default is 'src'.
|
||||||
|
out.dir
|
||||||
|
The name of the output directory. Default is 'bin'.
|
||||||
|
|
||||||
|
For other overridable properties, look at the beginning of the rules
|
||||||
|
files in the SDK, at tools/ant/build.xml
|
||||||
|
|
||||||
|
Properties related to the SDK location or the project target should
|
||||||
|
be updated using the 'android' tool with the 'update' action.
|
||||||
|
|
||||||
|
This file is an integral part of the build system for your
|
||||||
|
application and should be checked into Version Control Systems.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<property file="ant.properties" />
|
||||||
|
|
||||||
|
<!-- if sdk.dir was not set from one of the property file, then
|
||||||
|
get it from the ANDROID_HOME env var.
|
||||||
|
This must be done before we load project.properties since
|
||||||
|
the proguard config can use sdk.dir -->
|
||||||
|
<property environment="env" />
|
||||||
|
<condition property="sdk.dir" value="${env.ANDROID_HOME}">
|
||||||
|
<isset property="env.ANDROID_HOME" />
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
<!-- The project.properties file is created and updated by the 'android'
|
||||||
|
tool, as well as ADT.
|
||||||
|
|
||||||
|
This contains project specific properties such as project target, and library
|
||||||
|
dependencies. Lower level build properties are stored in ant.properties
|
||||||
|
(or in .classpath for Eclipse projects).
|
||||||
|
|
||||||
|
This file is an integral part of the build system for your
|
||||||
|
application and should be checked into Version Control Systems. -->
|
||||||
|
<loadproperties srcFile="project.properties" />
|
||||||
|
|
||||||
|
<!-- quick check on sdk.dir -->
|
||||||
|
<fail
|
||||||
|
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
|
||||||
|
unless="sdk.dir"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Import per project custom build rules if present at the root of the project.
|
||||||
|
This is the place to put custom intermediary targets such as:
|
||||||
|
-pre-build
|
||||||
|
-pre-compile
|
||||||
|
-post-compile (This is typically used for code obfuscation.
|
||||||
|
Compiled code location: ${out.classes.absolute.dir}
|
||||||
|
If this is not done in place, override ${out.dex.input.absolute.dir})
|
||||||
|
-post-package
|
||||||
|
-post-build
|
||||||
|
-pre-clean
|
||||||
|
-->
|
||||||
|
<import file="custom_rules.xml" optional="true" />
|
||||||
|
|
||||||
|
<!-- Import the actual build file.
|
||||||
|
|
||||||
|
To customize existing targets, there are two options:
|
||||||
|
- Customize only one target:
|
||||||
|
- copy/paste the target into this file, *before* the
|
||||||
|
<import> task.
|
||||||
|
- customize it to your needs.
|
||||||
|
- Customize the whole content of build.xml
|
||||||
|
- copy/paste the content of the rules files (minus the top node)
|
||||||
|
into this file, replacing the <import> task.
|
||||||
|
- customize to your needs.
|
||||||
|
|
||||||
|
***********************
|
||||||
|
****** IMPORTANT ******
|
||||||
|
***********************
|
||||||
|
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
|
||||||
|
in order to avoid having your file be overridden by tools such as "android update project"
|
||||||
|
-->
|
||||||
|
<!-- version-tag: 1 -->
|
||||||
|
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,91 @@
|
||||||
|
APPNAME="AssetsManager"
|
||||||
|
|
||||||
|
# options
|
||||||
|
|
||||||
|
buildexternalsfromsource=
|
||||||
|
|
||||||
|
usage(){
|
||||||
|
cat << EOF
|
||||||
|
usage: $0 [options]
|
||||||
|
|
||||||
|
Build C/C++ code for $APPNAME using Android NDK
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
-s Build externals from source
|
||||||
|
-h this help
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
while getopts "sh" OPTION; do
|
||||||
|
case "$OPTION" in
|
||||||
|
s)
|
||||||
|
buildexternalsfromsource=1
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# paths
|
||||||
|
|
||||||
|
if [ -z "${NDK_ROOT+aaa}" ];then
|
||||||
|
echo "please define NDK_ROOT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
# ... use paths relative to current directory
|
||||||
|
COCOS2DX_ROOT="../../../../"
|
||||||
|
APP_ROOT="$DIR/.."
|
||||||
|
APP_ANDROID_ROOT="$DIR"
|
||||||
|
|
||||||
|
echo "NDK_ROOT = $NDK_ROOT"
|
||||||
|
echo "COCOS2DX_ROOT = $COCOS2DX_ROOT"
|
||||||
|
echo "APP_ROOT = $APP_ROOT"
|
||||||
|
echo "APP_ANDROID_ROOT = $APP_ANDROID_ROOT"
|
||||||
|
|
||||||
|
# make sure assets is exist
|
||||||
|
if [ -d "$APP_ANDROID_ROOT"/assets ]; then
|
||||||
|
rm -rf "$APP_ANDROID_ROOT"/assets
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir "$APP_ANDROID_ROOT"/assets
|
||||||
|
|
||||||
|
# copy resources
|
||||||
|
for file in "$APP_ROOT"/Resources/*
|
||||||
|
do
|
||||||
|
if [ -d "$file" ]; then
|
||||||
|
cp -rf "$file" "$APP_ANDROID_ROOT"/assets
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
cp "$file" "$APP_ANDROID_ROOT"/assets
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# copy icons (if they exist)
|
||||||
|
file="$APP_ANDROID_ROOT"/assets/Icon-72.png
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
cp "$file" "$APP_ANDROID_ROOT"/res/drawable-hdpi/icon.png
|
||||||
|
fi
|
||||||
|
file="$APP_ANDROID_ROOT"/assets/Icon-48.png
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
cp "$file" "$APP_ANDROID_ROOT"/res/drawable-mdpi/icon.png
|
||||||
|
fi
|
||||||
|
file="$APP_ANDROID_ROOT"/assets/Icon-32.png
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
cp "$file" "$APP_ANDROID_ROOT"/res/drawable-ldpi/icon.png
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$buildexternalsfromsource" ]]; then
|
||||||
|
echo "Building external dependencies from source"
|
||||||
|
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
|
||||||
|
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source"
|
||||||
|
else
|
||||||
|
echo "Using prebuilt externals"
|
||||||
|
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
|
||||||
|
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"
|
||||||
|
fi
|
|
@ -0,0 +1,28 @@
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_MODULE := game_shared
|
||||||
|
|
||||||
|
LOCAL_MODULE_FILENAME := libgame
|
||||||
|
|
||||||
|
LOCAL_SRC_FILES := hellocpp/main.cpp \
|
||||||
|
../../Classes/AppDelegate.cpp
|
||||||
|
|
||||||
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
|
||||||
|
|
||||||
|
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
|
||||||
|
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
|
||||||
|
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
|
||||||
|
LOCAL_WHOLE_STATIC_LIBRARIES += spidermonkey_static
|
||||||
|
LOCAL_WHOLE_STATIC_LIBRARIES += scriptingcore-spidermonkey
|
||||||
|
|
||||||
|
LOCAL_EXPORT_CFLAGS := -DCOCOS2D_DEBUG=2 -DCOCOS2D_JAVASCRIPT
|
||||||
|
|
||||||
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
|
$(call import-module,cocos2dx)
|
||||||
|
$(call import-module,CocosDenshion/android)
|
||||||
|
$(call import-module,external/chipmunk)
|
||||||
|
$(call import-module,scripting/javascript/spidermonkey-android)
|
||||||
|
$(call import-module,scripting/javascript/bindings)
|
|
@ -0,0 +1,3 @@
|
||||||
|
APP_STL := gnustl_static
|
||||||
|
APP_CPPFLAGS := -frtti -DCOCOS2D_JAVASCRIPT=1
|
||||||
|
APP_CPPFLAGS += -DCOCOS2D_DEBUG=1 -DCC_ENABLE_CHIPMUNK_INTEGRATION=1
|
|
@ -0,0 +1,43 @@
|
||||||
|
#include "AppDelegate.h"
|
||||||
|
#include "platform/android/jni/JniHelper.h"
|
||||||
|
#include <jni.h>
|
||||||
|
#include <android/log.h>
|
||||||
|
|
||||||
|
#define LOG_TAG "main"
|
||||||
|
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
|
||||||
|
|
||||||
|
using namespace cocos2d;
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
|
||||||
|
jint JNI_OnLoad(JavaVM *vm, void *reserved)
|
||||||
|
{
|
||||||
|
JniHelper::setJavaVM(vm);
|
||||||
|
|
||||||
|
return JNI_VERSION_1_4;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit(JNIEnv* env, jobject thiz, jint w, jint h)
|
||||||
|
{
|
||||||
|
if (!CCDirector::sharedDirector()->getOpenGLView())
|
||||||
|
{
|
||||||
|
CCEGLView *view = CCEGLView::sharedOpenGLView();
|
||||||
|
view->setFrameSize(w, h);
|
||||||
|
|
||||||
|
AppDelegate *pAppDelegate = new AppDelegate();
|
||||||
|
CCApplication::sharedApplication()->run();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ccDrawInit();
|
||||||
|
ccGLInvalidateStateCache();
|
||||||
|
|
||||||
|
CCShaderCache::sharedShaderCache()->reloadDefaultShaders();
|
||||||
|
CCTextureCache::reloadAllTextures();
|
||||||
|
CCNotificationCenter::sharedNotificationCenter()->postNotification(EVNET_COME_TO_FOREGROUND, NULL);
|
||||||
|
CCDirector::sharedDirector()->setGLDefaultValues();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
# To enable ProGuard in your project, edit project.properties
|
||||||
|
# to define the proguard.config property as described in that file.
|
||||||
|
#
|
||||||
|
# Add project specific ProGuard rules here.
|
||||||
|
# By default, the flags in this file are appended to flags specified
|
||||||
|
# in ${sdk.dir}/tools/proguard/proguard-android.txt
|
||||||
|
# You can edit the include path and order by changing the ProGuard
|
||||||
|
# include property in project.properties.
|
||||||
|
#
|
||||||
|
# For more details, see
|
||||||
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||||
|
|
||||||
|
# Add any project specific keep options here:
|
||||||
|
|
||||||
|
# If your project uses WebView with JS, uncomment the following
|
||||||
|
# and specify the fully qualified class name to the JavaScript interface
|
||||||
|
# class:
|
||||||
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||||
|
# public *;
|
||||||
|
#}
|
|
@ -0,0 +1,15 @@
|
||||||
|
# This file is automatically generated by Android Tools.
|
||||||
|
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||||
|
#
|
||||||
|
# This file must be checked in Version Control Systems.
|
||||||
|
#
|
||||||
|
# To customize properties used by the Ant build system edit
|
||||||
|
# "ant.properties", and override values to adapt the script to your
|
||||||
|
# project structure.
|
||||||
|
#
|
||||||
|
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
|
||||||
|
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||||
|
|
||||||
|
# Project target.
|
||||||
|
target=android-8
|
||||||
|
android.library.reference.1=../../cocos2dx/platform/android/java
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">AssetsManager</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,39 @@
|
||||||
|
/****************************************************************************
|
||||||
|
Copyright (c) 2010-2012 cocos2d-x.org
|
||||||
|
|
||||||
|
http://www.cocos2d-x.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
****************************************************************************/
|
||||||
|
package org.cocos2dx.AssetsManagerTest;
|
||||||
|
|
||||||
|
import org.cocos2dx.lib.Cocos2dxActivity;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
public class AssetsManager extends Cocos2dxActivity{
|
||||||
|
|
||||||
|
protected void onCreate(Bundle savedInstanceState){
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
System.loadLibrary("game");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue