Add --activity and --update-repo options. Fix things.

This commit is contained in:
Antonin Décimo
2014-07-21 16:35:57 +02:00
parent 1dd938cb48
commit 194fa0a2e6
2 changed files with 44 additions and 16 deletions

View File

@@ -82,10 +82,14 @@ to set the game icon on Windows.
#### ANDROID #### ANDROID
Note that every argument passed to the options should be alphanumerical, Note that every argument passed to the options should be alphanumerical,
with eventual underscores (i.e. [a-zA-Z0-9\_]), otherwise you'll get errors. with eventual underscores (i.e. [a-zA-Z0-9\_]), otherwise you'll get errors.
`--activity` The name of the class that extends GameActivity.
By default it is the name of the project with Activity appended,
eventual spaces and dashes replaced by underscores.
`--maintainer-name` Set the maintainers name. The company name is used by default. `--maintainer-name` Set the maintainers name. The company name is used by default.
It must be only alphanumerical characters, with eventual underscores. It must be only alphanumerical characters, with eventual underscores.
`--package-name` Set the name of the package. `--package-name` Set the name of the package.
By default, it is the name of your project, with eventual spaces replaced by underscores. By default, it is the name of your project, with eventual spaces replaced by underscores.
`--update-repo` Update the love-android-sdl2.git repository used in the cache.
`--version` Set the version of your package. `--version` Set the version of your package.
#### OTHERS #### OTHERS

View File

@@ -139,6 +139,11 @@ Set the version of your package.
Note that every argument passed to the options should be alphanumerical, Note that every argument passed to the options should be alphanumerical,
with eventual underscores (i.e. [a-zA-Z0-9_]), otherwise you'll get errors. with eventual underscores (i.e. [a-zA-Z0-9_]), otherwise you'll get errors.
.TP .TP
.B \-\-activity \fIactivity\fR
The name of the class that extends GameActivity.
By default it is the name of the project with 'Activity' appended,
eventual spaces and dashes replaced by underscores.
.TP
.B \-\-maintainer\-name \fIname\fR .B \-\-maintainer\-name \fIname\fR
Set the maintainers name. The company name is used by default. Set the maintainers name. The company name is used by default.
It must be only alphanumerical characters, with eventual underscores. It must be only alphanumerical characters, with eventual underscores.
@@ -147,6 +152,9 @@ It must be only alphanumerical characters, with eventual underscores.
Set the name of the package. Set the name of the package.
By default, it is the name of your project, with eventual spaces replaced by underscores. By default, it is the name of your project, with eventual spaces replaced by underscores.
.TP .TP
.B \-\-update\-repo
Update the love-android-sdl2.git repository used in the cache.
.TP
.B \-\-version \fIversion\fR .B \-\-version \fIversion\fR
Set the version of your package. Set the version of your package.
.SH OTHERS .SH OTHERS
@@ -325,6 +333,8 @@ COMPANY_NAME=love2d
MAINTAINER_NAME=$COMPANY_NAME MAINTAINER_NAME=$COMPANY_NAME
MAINTAINER_EMAIL= MAINTAINER_EMAIL=
RELEASE_DIR="$PWD"/releases RELEASE_DIR="$PWD"/releases
ACTIVITY=${PROJECT_NAME// /_}; ACTIVITY=${ACTIVITY//-/_}Activity
UPDATE_ANDROID_REPO=false
DEBUG=false DEBUG=false
CACHE_DIR=~/.cache/love-release CACHE_DIR=~/.cache/love-release
@@ -355,6 +365,7 @@ PROJECT_DESCRIPTION=$PROJECT_DESCRIPTION
COMPANY_NAME=$COMPANY_NAME COMPANY_NAME=$COMPANY_NAME
MAINTAINER_NAME=$MAINTAINER_NAME MAINTAINER_NAME=$MAINTAINER_NAME
MAINTAINER_EMAIL=$MAINTAINER_EMAIL MAINTAINER_EMAIL=$MAINTAINER_EMAIL
ACTIVITY=$ACTIVITY
RELEASE_DIR=$RELEASE_DIR RELEASE_DIR=$RELEASE_DIR
CACHE_DIR=$CACHE_DIR CACHE_DIR=$CACHE_DIR
PROJECT_ICO=$PROJECT_ICO PROJECT_ICO=$PROJECT_ICO
@@ -365,7 +376,9 @@ EXCLUDE_FILES=$EXCLUDE_FILES
## Parsing options ## ## Parsing options ##
while getoptex "a; h; d; l; m; w. n: r: u: v: version: maintainer-name: maintainer-email: homepage: description: package-name: debug help refresh" "$@" activity_defined_by_user=false
package_name_defined_by_user=false
while getoptex "a; h; d; l; m; w. n: r: u: v: activity: version: maintainer-name: maintainer-email: homepage: description: package-name: update-repo debug help refresh" "$@"
do do
if [ "$OPTOPT" = "h" ]; then if [ "$OPTOPT" = "h" ]; then
short_help short_help
@@ -389,6 +402,12 @@ do
fi fi
elif [ "$OPTOPT" = "n" ]; then elif [ "$OPTOPT" = "n" ]; then
PROJECT_NAME=$OPTARG PROJECT_NAME=$OPTARG
if [ "$activity_defined_by_user" = false ]; then
ACTIVITY=${PROJECT_NAME// /_}; ACTIVITY=${ACTIVITY//-/_}Activity
fi
if [ "$package_name_defined_by_user" = false ]; then
PACKAGE_NAME=${PROJECT_NAME,,}; PACKAGE_NAME=${PACKAGE_NAME// /-}
fi
elif [ "$OPTOPT" = "r" ]; then elif [ "$OPTOPT" = "r" ]; then
RELEASE_DIR=$OPTARG RELEASE_DIR=$OPTARG
elif [ "$OPTOPT" = "u" ]; then elif [ "$OPTOPT" = "u" ]; then
@@ -398,6 +417,9 @@ do
LOVE_VERSION_MAJOR=$(echo "$LOVE_VERSION" | grep -Eo '^[0-9]+\.?[0-9]*') LOVE_VERSION_MAJOR=$(echo "$LOVE_VERSION" | grep -Eo '^[0-9]+\.?[0-9]*')
LOVE_GT_080=$(float_test "$LOVE_VERSION_MAJOR >= 0.8") LOVE_GT_080=$(float_test "$LOVE_VERSION_MAJOR >= 0.8")
LOVE_GT_090=$(float_test "$LOVE_VERSION_MAJOR >= 0.9") LOVE_GT_090=$(float_test "$LOVE_VERSION_MAJOR >= 0.9")
elif [ "$OPTOPT" = "activity" ]; then
ACTIVITY=$OPTARG
activity_defined_by_user=true
elif [ "$OPTOPT" = "version" ]; then elif [ "$OPTOPT" = "version" ]; then
PROJECT_VERSION=$OPTARG PROJECT_VERSION=$OPTARG
elif [ "$OPTOPT" = "homepage" ]; then elif [ "$OPTOPT" = "homepage" ]; then
@@ -410,6 +432,9 @@ do
MAINTAINER_EMAIL=$OPTARG MAINTAINER_EMAIL=$OPTARG
elif [ "$OPTOPT" = "package-name" ]; then elif [ "$OPTOPT" = "package-name" ]; then
PACKAGE_NAME=$OPTARG PACKAGE_NAME=$OPTARG
package_name_defined_by_user=true
elif [ "$OPTOPT" = "update-repo" ]; then
UPDATE_ANDROID_REPO=true
elif [ "$OPTOPT" = "debug" ]; then elif [ "$OPTOPT" = "debug" ]; then
DEBUG=true DEBUG=true
elif [ "$OPTOPT" = "help" ]; then elif [ "$OPTOPT" = "help" ]; then
@@ -783,14 +808,16 @@ if [ "$RELEASE_APK" = true ]; then
cd "$LOVE_ANDROID_DIR" cd "$LOVE_ANDROID_DIR"
git checkout -- . git checkout -- .
rm -rf src/com bin gen rm -rf src/com bin gen
LOCAL=$(git rev-parse @) if [ "$UPDATE_ANDROID_REPO" = true ]; then
REMOTE=$(git rev-parse @{u}) LOCAL=$(git rev-parse @)
BASE=$(git merge-base @ @{u}) REMOTE=$(git rev-parse @{u})
if [ $LOCAL = $REMOTE ]; then BASE=$(git merge-base @ @{u})
: if [ $LOCAL = $REMOTE ]; then
elif [ $LOCAL = $BASE ]; then echo "Already up-to-date."
git pull elif [ $LOCAL = $BASE ]; then
ndk-build --jobs $(( $(nproc) + 1)) git pull
ndk-build --jobs $(( $(nproc) + 1))
fi
fi fi
cd "$RELEASE_DIR" cd "$RELEASE_DIR"
else else
@@ -801,9 +828,6 @@ if [ "$RELEASE_APK" = true ]; then
cd "$RELEASE_DIR" cd "$RELEASE_DIR"
fi fi
MAINTAINER_USERNAME=${MAINTAINER_NAME// /_}
PACKAGE_NAME=${PACKAGE_NAME//-/_}
ACTIVITY=${PROJECT_NAME// /_}Activity
ANDROID_VERSION=$(grep -Eo -m 1 "[0-9]+.[0-9]+.[0-9]+[a-z]*" "$LOVE_ANDROID_DIR"/AndroidManifest.xml) ANDROID_VERSION=$(grep -Eo -m 1 "[0-9]+.[0-9]+.[0-9]+[a-z]*" "$LOVE_ANDROID_DIR"/AndroidManifest.xml)
ANDROID_LOVE_VERSION=$(echo "$ANDROID_VERSION" | grep -Eo "[0-9]+.[0-9]+.[0-9]+") ANDROID_LOVE_VERSION=$(echo "$ANDROID_VERSION" | grep -Eo "[0-9]+.[0-9]+.[0-9]+")
if [ "$LOVE_VERSION" != "$ANDROID_LOVE_VERSION" ]; then if [ "$LOVE_VERSION" != "$ANDROID_LOVE_VERSION" ]; then
@@ -812,18 +836,18 @@ if [ "$RELEASE_APK" = true ]; then
mkdir -p "$LOVE_ANDROID_DIR"/assets mkdir -p "$LOVE_ANDROID_DIR"/assets
cp "$PROJECT_NAME".love "$LOVE_ANDROID_DIR"/assets/game.love cp "$PROJECT_NAME".love "$LOVE_ANDROID_DIR"/assets/game.love
cd "$LOVE_ANDROID_DIR" cd "$LOVE_ANDROID_DIR"
sed -i "s/org.love2d.android/com.${MAINTAINER_USERNAME}.${PACKAGE_NAME}/" AndroidManifest.xml sed -i "s/org.love2d.android/com.${MAINTAINER_NAME}.${PACKAGE_NAME}/" AndroidManifest.xml
sed -i "s/$ANDROID_VERSION/${ANDROID_VERSION}-${PACKAGE_NAME}-v${PROJECT_VERSION}/" AndroidManifest.xml sed -i "s/$ANDROID_VERSION/${ANDROID_VERSION}-${PACKAGE_NAME}-v${PROJECT_VERSION}/" AndroidManifest.xml
sed -i "0,/LÖVE for Android/s//$PROJECT_NAME $PROJECT_VERSION/" AndroidManifest.xml sed -i "0,/LÖVE for Android/s//$PROJECT_NAME $PROJECT_VERSION/" AndroidManifest.xml
sed -i "s/LÖVE for Android/$PROJECT_NAME/" AndroidManifest.xml sed -i "s/LÖVE for Android/$PROJECT_NAME/" AndroidManifest.xml
sed -i "s/GameActivity/$ACTIVITY/" AndroidManifest.xml sed -i "s/GameActivity/$ACTIVITY/" AndroidManifest.xml
mkdir -p src/com/$MAINTAINER_USERNAME/$PACKAGE_NAME mkdir -p src/com/$MAINTAINER_NAME/$PACKAGE_NAME
echo "package com.${MAINTAINER_USERNAME}.${PACKAGE_NAME}; echo "package com.${MAINTAINER_NAME}.${PACKAGE_NAME};
import org.love2d.android.GameActivity; import org.love2d.android.GameActivity;
public class $ACTIVITY extends GameActivity {} public class $ACTIVITY extends GameActivity {}
" > src/com/$MAINTAINER_USERNAME/$PACKAGE_NAME/${ACTIVITY}.java " > src/com/$MAINTAINER_NAME/$PACKAGE_NAME/${ACTIVITY}.java
ant debug ant debug
cp bin/love_android_sdl2-debug.apk "$RELEASE_DIR" cp bin/love_android_sdl2-debug.apk "$RELEASE_DIR"