2011-09-23 09:56:30 +08:00
# check the args
# $1: root of cocos2dx $2: app name $3: ndk root $4:pakcage path
APP_NAME = $2
COCOS2DX_ROOT = $1
COCOS2DX_ROOT_TEMP = $1
APP_DIR = ` pwd ` /$5
HELLOWORLD_ROOT = $COCOS2DX_ROOT /HelloWorld
NDK_ROOT = $3
PACKAGE_PATH = $4
projName = $5
echo $APP_DIR $5
# xxx.yyy.zzz -> xxx/yyy/zzz
convert_package_path_to_dir( ) {
PACKAGE_PATH_DIR = ` echo $1 | sed -e "s/\./\//g" `
}
# make director andorid and copy all files and directories into it
move_files_into_android( ) {
mkdir $APP_DIR /android
for file in $APP_DIR /*
do
if [ -d $file ] ; then
if [ $file != $APP_DIR /android ] ; then
mv -f $file $APP_DIR /android
fi
fi
if [ -f $file ] ; then
mv $file $APP_DIR /android
fi
done
2011-09-29 15:49:49 +08:00
#rm -r $APP_DIR/android/assets
2011-09-23 09:56:30 +08:00
}
#copy linux's
move_files_into_linux( ) {
mkdir $APP_DIR /Linux
for file in ` ls $HELLOWORLD_ROOT /Linux/* | grep -E '.*\.[cpp|h]' `
do
if [ -f $file ] ; then
cp $file $APP_DIR /Linux
fi
done
}
#copy eclipse configures
move_eclipse_configures_into( ) {
for file in ` ls -a $HELLOWORLD_ROOT /Linux/ | grep -E '\..*project' `
do
cp $HELLOWORLD_ROOT /Linux/$file $APP_DIR /Linux/
done
2011-09-29 15:49:49 +08:00
sed -i " s/HelloWorld/ $projName / " $APP_DIR /Linux/.project
2011-09-23 09:56:30 +08:00
2011-09-29 17:14:17 +08:00
sed -i " s:\.\./\.\./\.\./: $COCOS2DX_ROOT :;s:helloworld: $projName : " $APP_DIR /Linux/.cproject
2011-09-23 09:56:30 +08:00
}
#copy main sources
copy_cpp_h_from_helloworld( ) {
mkdir $APP_DIR /Classes
for file in ` ls $HELLOWORLD_ROOT /Classes/* | grep -E '.*\.[cpp|h]' `
do
if [ -f $file ] ; then
cp $file $APP_DIR /Classes
fi
done
2011-09-29 17:14:17 +08:00
# load resources from Resources, not Resource
sed -i "s:\.\./Resource/:\.\./Resources/:" $APP_DIR /Classes/AppDelegate.cpp
2011-09-23 09:56:30 +08:00
}
# copy resources
copy_resouces( ) {
2011-09-29 15:49:49 +08:00
mkdir $APP_DIR /Resources
2011-09-23 09:56:30 +08:00
for file in $HELLOWORLD_ROOT /Resource/*
do
2011-09-29 15:49:49 +08:00
cp $file $APP_DIR /Resources
2011-09-23 09:56:30 +08:00
done
}
# from HelloWorld copy src and jni to APP_DIR
copy_src_and_jni( ) {
cp -rf $HELLOWORLD_ROOT /android/jni $APP_DIR /android
cp -rf $HELLOWORLD_ROOT /android/src $APP_DIR /android
# repalce Android.mk and Application.mk
cat $COCOS2DX_ROOT /template/android/AndroidTemplate1.mk > $APP_DIR /android/jni/helloworld/Android.mk
cat $COCOS2DX_ROOT /template/android/Application.mk > $APP_DIR /android/jni/Application.mk
}
# copy build_native.sh and replace something
copy_build_native( ) {
# here should use # instead of /, why??
sed " s#__cocos2dxroot__# $COCOS2DX_ROOT #;s#__ndkroot__# $NDK_ROOT #;s#__projectname__# $APP_NAME # " $COCOS2DX_ROOT /template/android/build_native.sh > $APP_DIR /android/build_native.sh
chmod u+x $APP_DIR /android/build_native.sh
}
# replace AndroidManifext.xml and change the activity name
# use sed to replace the specified line
modify_androidmanifest( ) {
sed " s/ApplicationDemo/ $APP_NAME /;s/org\.cocos2dx\.application/ $PACKAGE_PATH / " $HELLOWORLD_ROOT /android/AndroidManifest.xml > $APP_DIR /android/AndroidManifest.xml
}
# modify ApplicationDemo.java
modify_applicationdemo( ) {
convert_package_path_to_dir $PACKAGE_PATH
# 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
sed " s/ApplicationDemo/ $APP_NAME /;s/helloworld/game/;s/org\.cocos2dx\.application/ $PACKAGE_PATH / " $APP_DIR /android/src/org/cocos2dx/application/ApplicationDemo.java > $APP_DIR /android/src/$PACKAGE_PATH_DIR /tempfile.java
rm -fr $APP_DIR /android/src/org/cocos2dx/application
mv $APP_DIR /android/src/$PACKAGE_PATH_DIR /tempfile.java $APP_DIR /android/src/$PACKAGE_PATH_DIR /$APP_NAME .java
}
modify_layout( ) {
cp $HELLOWORLD_ROOT /android/res/layout/helloworld_demo.xml $APP_DIR /android/res/layout
sed "s/helloworld_gl_surfaceview/game_gl_surfaceview/" $APP_DIR /android/res/layout/helloworld_demo.xml > $APP_DIR /android/res/layout/game_demo.xml
rm -f $APP_DIR /android/res/layout/main.xml
rm -f $APP_DIR /android/res/layout/helloworld_demo.xml
}
move_files_into_android
move_files_into_linux
move_eclipse_configures_into
copy_cpp_h_from_helloworld
copy_resouces
copy_src_and_jni
copy_build_native
modify_androidmanifest
modify_applicationdemo
modify_layout