axmol/plugin/tools/toolsForGame/addPluginForGame.sh

79 lines
2.4 KiB
Bash
Executable File

SHELL_DIR=$(cd "$(dirname "$0")"; pwd)
GAME_PROJECT_DIR=$1
SELECTED_PLUGINS=(${2//:/ })
# if project path is end with '/', delete it
END_CHAR=${GAME_PROJECT_DIR:$((${#GAME_PROJECT_DIR}-1)):1}
if [ ${END_CHAR} = "/" ]; then
GAME_PROJECT_DIR=${GAME_PROJECT_DIR%/}
fi
# check the game project path
if [ -d "${GAME_PROJECT_DIR}" -a -f "${GAME_PROJECT_DIR}/AndroidManifest.xml" ]; then
echo "Game project path : ${GAME_PROJECT_DIR}"
echo "selected plugins : ${SELECTED_PLUGINS[@]}"
else
echo "Game project path is wrong.(Not an android project directory)"
exit 1
fi
getPathForSystem()
{
START_WITH_CYGWIN=`echo $1 | grep '^/cygdrive/'`
if [ -z "${START_WITH_CYGWIN}" ]; then
echo "$1"
else
RET=${START_WITH_CYGWIN#/cygdrive/}
RET=${RET/\//:/}
echo "${RET}"
fi
}
pushd ${SHELL_DIR}/../
source ./config.sh
# check publish directory
if [ -d "${TARGET_ROOT}" ]; then
# add protocols name to build
export NEED_PUBLISH="protocols":$2
# Modify mk file
MK_FILE_PATH="${GAME_PROJECT_DIR}"/jni/Android.mk
${SHELL_DIR}/modifyMk.sh "${MK_FILE_PATH}"
# Modify Application.mk file (add stl & rtti configuration)
APP_MK_FILE_PATH="${GAME_PROJECT_DIR}"/jni/Application.mk
${SHELL_DIR}/modifyAppMk.sh "${APP_MK_FILE_PATH}"
# Combin ForRes directory to the res directory of game project
GAME_RES_DIR="${GAME_PROJECT_DIR}"/res
${SHELL_DIR}/modifyRes.sh "${GAME_RES_DIR}"
# get system dir
SYS_TARGET_ROOT=$(getPathForSystem ${TARGET_ROOT})
SYS_SHELL_DIR=$(getPathForSystem ${SHELL_DIR})
SYS_PROJ_DIR=$(getPathForSystem ${GAME_PROJECT_DIR})
# Modify .project file (link publish directory to the game project)
PROJECT_FILE_PATH="${SYS_PROJ_DIR}"/.project
python ${SYS_SHELL_DIR}/modifyProject.py "${PROJECT_FILE_PATH}" "${SYS_TARGET_ROOT}"
# Modify .classpath file (link jar files for game project)
CLASSPATH_FILE="${SYS_PROJ_DIR}"/.classpath
python ${SYS_SHELL_DIR}/modifyClassPath.py "${CLASSPATH_FILE}" "${NEED_PUBLISH}" "${SYS_TARGET_ROOT}"
# Modify AndroidManifest.xml file (add permission & add activity info)
MANIFEST_FILE="${SYS_PROJ_DIR}"/AndroidManifest.xml
python ${SYS_SHELL_DIR}/modifyManifest.py "${MANIFEST_FILE}" "$2" "${SYS_TARGET_ROOT}"
else
echo "PLZ run the publish.sh script first"
popd
exit 1
fi
popd
exit 0