addPluginForGame.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. SHELL_DIR=$(cd "$(dirname "$0")"; pwd)
  2. GAME_PROJECT_DIR=$1
  3. SELECTED_PLUGINS=(${2//:/ })
  4. # if project path is end with '/', delete it
  5. END_CHAR=${GAME_PROJECT_DIR:$((${#GAME_PROJECT_DIR}-1)):1}
  6. if [ ${END_CHAR} = "/" ]; then
  7. GAME_PROJECT_DIR=${GAME_PROJECT_DIR%/}
  8. fi
  9. # check the game project path
  10. if [ -d "${GAME_PROJECT_DIR}" -a -f "${GAME_PROJECT_DIR}/AndroidManifest.xml" ]; then
  11. echo "Game project path : ${GAME_PROJECT_DIR}"
  12. echo "selected plugins : ${SELECTED_PLUGINS[@]}"
  13. else
  14. echo "Game project path is wrong.(Not an android project directory)"
  15. exit 1
  16. fi
  17. getPathForSystem()
  18. {
  19. START_WITH_CYGWIN=`echo $1 | grep '^/cygdrive/'`
  20. if [ -z "${START_WITH_CYGWIN}" ]; then
  21. echo "$1"
  22. else
  23. RET=${START_WITH_CYGWIN#/cygdrive/}
  24. RET=${RET/\//:/}
  25. echo "${RET}"
  26. fi
  27. }
  28. pushd ${SHELL_DIR}/../
  29. source ./config.sh
  30. # check publish directory
  31. if [ -d "${TARGET_ROOT}" ]; then
  32. # add protocols name to build
  33. export NEED_PUBLISH="protocols":$2
  34. # Modify mk file
  35. MK_FILE_PATH="${GAME_PROJECT_DIR}"/jni/Android.mk
  36. ${SHELL_DIR}/modifyMK.sh "${MK_FILE_PATH}"
  37. # Modify Application.mk file (add stl & rtti configuration)
  38. APP_MK_FILE_PATH="${GAME_PROJECT_DIR}"/jni/Application.mk
  39. ${SHELL_DIR}/modifyAppMK.sh "${APP_MK_FILE_PATH}"
  40. # Combin ForRes directory to the res directory of game project
  41. GAME_RES_DIR="${GAME_PROJECT_DIR}"/res
  42. ${SHELL_DIR}/modifyRes.sh "${GAME_RES_DIR}"
  43. # get system dir
  44. SYS_TARGET_ROOT=$(getPathForSystem ${TARGET_ROOT})
  45. SYS_SHELL_DIR=$(getPathForSystem ${SHELL_DIR})
  46. SYS_PROJ_DIR=$(getPathForSystem ${GAME_PROJECT_DIR})
  47. # Modify .project file (link publish directory to the game project)
  48. PROJECT_FILE_PATH="${SYS_PROJ_DIR}"/.project
  49. python ${SYS_SHELL_DIR}/modifyProject.py "${PROJECT_FILE_PATH}" "${SYS_TARGET_ROOT}"
  50. # Modify .classpath file (link jar files for game project)
  51. CLASSPATH_FILE="${SYS_PROJ_DIR}"/.classpath
  52. python ${SYS_SHELL_DIR}/modifyClassPath.py "${CLASSPATH_FILE}" "${NEED_PUBLISH}" "${SYS_TARGET_ROOT}"
  53. # Modify AndroidManifest.xml file (add permission & add activity info)
  54. MANIFEST_FILE="${SYS_PROJ_DIR}"/AndroidManifest.xml
  55. python ${SYS_SHELL_DIR}/modifyManifest.py "${MANIFEST_FILE}" "$2" "${SYS_TARGET_ROOT}"
  56. else
  57. echo "PLZ run the publish.sh script first"
  58. popd
  59. exit 1
  60. fi
  61. popd
  62. exit 0