2012-03-01 02:51:58 +08:00
#!/bin/bash
2011-03-23 09:42:23 +08:00
# check the args
2011-05-20 16:59:19 +08:00
# $1: root of cocos2dx $2: app name $3: ndk root $4:pakcage path
2011-03-23 09:42:23 +08:00
APP_NAME = $2
2011-03-23 14:30:14 +08:00
COCOS2DX_ROOT = $1
APP_DIR = $COCOS2DX_ROOT /$APP_NAME
HELLOWORLD_ROOT = $COCOS2DX_ROOT /HelloWorld
2012-05-25 08:12:48 +08:00
COCOSJAVALIB_ROOT = $COCOS2DX_ROOT /cocos2dx/platform/android/java
2011-03-23 14:30:14 +08:00
NDK_ROOT = $3
2011-05-20 16:59:19 +08:00
PACKAGE_PATH = $4
2012-02-29 17:48:45 +08:00
NEED_BOX2D = $5
NEED_CHIPMUNK = $6
NEED_LUA = $7
2011-05-20 16:59:19 +08:00
# xxx.yyy.zzz -> xxx/yyy/zzz
convert_package_path_to_dir( ) {
PACKAGE_PATH_DIR = ` echo $1 | sed -e "s/\./\//g" `
}
2011-03-23 09:42:23 +08:00
copy_cpp_h_from_helloworld( ) {
2011-03-23 14:30:14 +08:00
mkdir $APP_DIR /Classes
2012-01-10 17:05:42 +08:00
for file in ` ls $HELLOWORLD_ROOT /Classes/* | grep -E '.*\.(cpp|h|mk)' `
2011-03-23 09:42:23 +08:00
do
if [ -f $file ] ; then
2011-03-23 14:30:14 +08:00
cp $file $APP_DIR /Classes
2011-03-23 09:42:23 +08:00
fi
done
}
2011-03-23 14:30:14 +08:00
# copy resources
copy_resouces( ) {
2011-07-28 09:58:44 +08:00
mkdir $APP_DIR /Resources
2011-03-23 09:42:23 +08:00
2012-02-25 10:14:06 +08:00
for file in $HELLOWORLD_ROOT /Resources/*
2011-03-23 09:42:23 +08:00
do
2012-03-01 16:57:59 +08:00
cp -rf $file $APP_DIR /Resources
2011-03-23 09:42:23 +08:00
done
}
# from HelloWorld copy src and jni to APP_DIR
copy_src_and_jni( ) {
2012-05-02 17:29:16 +08:00
cp -rf $HELLOWORLD_ROOT /proj.android/jni $APP_DIR /proj.android
cp -rf $HELLOWORLD_ROOT /proj.android/src $APP_DIR /proj.android
2011-03-23 14:30:14 +08:00
2012-05-02 17:29:16 +08:00
# repalce Android.mk
sh $COCOS2DX_ROOT /template/android/gamemk.sh $APP_DIR /proj.android/jni/Android.mk $NEED_BOX2D $NEED_CHIPMUNK $NEED_LUA
2011-03-23 14:30:14 +08:00
}
2012-05-24 05:02:56 +08:00
copy_library_src( ) {
cp -rf $COCOSJAVALIB_ROOT /src/* $APP_DIR /proj.android/src/
}
2011-03-23 14:30:14 +08:00
# copy build_native.sh and replace something
copy_build_native( ) {
# here should use # instead of /, why??
2012-05-02 17:29:16 +08:00
sed " s#__cocos2dxroot__# $COCOS2DX_ROOT #;s#__ndkroot__# $NDK_ROOT #;s#__projectname__# $APP_NAME # " $COCOS2DX_ROOT /template/android/build_native.sh > $APP_DIR /proj.android/build_native.sh
chmod u+x $APP_DIR /proj.android/build_native.sh
2011-03-23 09:42:23 +08:00
}
# replace AndroidManifext.xml and change the activity name
# use sed to replace the specified line
modify_androidmanifest( ) {
2012-05-02 17:29:16 +08:00
sed " s/ApplicationDemo/ $APP_NAME /;s/org\.cocos2dx\.application/ $PACKAGE_PATH / " $HELLOWORLD_ROOT /proj.android/AndroidManifest.xml > $APP_DIR /proj.android/AndroidManifest.xml
2011-03-23 09:42:23 +08:00
}
2011-05-09 15:21:08 +08:00
# modify ApplicationDemo.java
2011-03-23 09:42:23 +08:00
modify_applicationdemo( ) {
2011-05-20 16:59:19 +08:00
convert_package_path_to_dir $PACKAGE_PATH
2011-05-09 15:21:08 +08:00
# rename APP_DIR/android/src/org/cocos2dx/application/ApplicationDemo.java to
# APP_DIR/android/src/org/cocos2dx/application/$APP_NAME.java, change helloworld to game
2012-05-02 17:29:16 +08:00
sed " s/ApplicationDemo/ $APP_NAME /;s/helloworld/game/;s/org\.cocos2dx\.application/ $PACKAGE_PATH / " $APP_DIR /proj.android/src/org/cocos2dx/application/ApplicationDemo.java > $APP_DIR /proj.android/src/$PACKAGE_PATH_DIR /$APP_NAME .java
rm -fr $APP_DIR /proj.android/src/org/cocos2dx/application
2011-05-09 15:21:08 +08:00
}
modify_layout( ) {
2012-05-02 17:29:16 +08:00
rm -f $APP_DIR /proj.android/res/layout/main.xml
2011-03-23 09:42:23 +08:00
}
2011-11-30 15:30:11 +08:00
# android.bat of android 4.0 don't create res/drawable-hdpi res/drawable-ldpi and res/drawable-mdpi.
# These work are done in ADT
copy_icon( ) {
2012-05-02 17:29:16 +08:00
if [ ! -d $APP_DIR /proj.android/res/drawable-hdpi ] ; then
cp -r $HELLOWORLD_ROOT /proj.android/res/drawable-hdpi $APP_DIR /proj.android/res
cp -r $HELLOWORLD_ROOT /proj.android/res/drawable-ldpi $APP_DIR /proj.android/res
cp -r $HELLOWORLD_ROOT /proj.android/res/drawable-mdpi $APP_DIR /proj.android/res
2011-11-30 15:30:11 +08:00
fi
}
2011-03-23 09:42:23 +08:00
copy_cpp_h_from_helloworld
2011-03-23 14:30:14 +08:00
copy_resouces
2011-03-23 09:42:23 +08:00
copy_src_and_jni
2012-05-24 05:02:56 +08:00
copy_library_src
2011-03-23 14:30:14 +08:00
copy_build_native
2011-03-23 09:42:23 +08:00
modify_androidmanifest
modify_applicationdemo
2011-05-09 15:21:08 +08:00
modify_layout
2011-11-30 15:30:11 +08:00
copy_icon