BuildStendhalForAndroid: Difference between revisions
Content deleted Content added
imported>AntumDeluge →Ant: list available builds |
imported>AntumDeluge →Building from Command Line: re-organize to make ant preferred build method |
||
| (14 intermediate revisions by the same user not shown) | |||
Line 34:
'''''IMPORTANT:''' Before you can build from the command line/terminal, you must have a [[VisualGuideToBuildingStendhalStep1|Java compiler]] provided by a [https://www.oracle.com/java/technologies/downloads/ Java Development Kit (JDK)] installed.''
===
The [https://gradle.org/ Gradle Build Tool] is used for building. The necessary tools are already included with the source code. Two scripts are provided for executing the build: <span style="color:green;">android/gradlew</span> for Unix/Linux systems, & <span style="color:green;">android/gradlew.bat</span> for Windows.▼
As with other instructions on building from the command line, the Android client can also be built with an [https://ant.apache.org/ Apache Ant target]. The Ant target is a wrapper that calls the [[BuildStendhalForAndroid#Gradle|Gradle]] script and passes parameters to it. The same conditions related to invoking the Gradle scripts directly apply to using ant.▼
In order for the build to complete, the scripts must know where the SDK libraries are located. The script will check the '''<span style="color:green;">ANDROID_SDK_ROOT</span>''' environment variable, or it will parse the value of '''<span style="color:green;">sdk.dir</span>''' in the <span style="color:green;">android/local.properties</span> file ''('''NOTE:''' Windows users must use double backslashes for directories (\\))''.▼
'''''See also: [[BuildStendhalForAndroid#Signing_Packages|section on signing packages]]'''''
Example <span style="color:green;">local.properties</span> for Unix/Linux:▼
<pre>▼
sdk.dir=/path/to/sdk/root▼
</pre>▼
From the Stendhal source root directory, execute the following.▼
▲Example <span style="color:green;">local.properties</span> for Windows:
<pre>▼
sdk.dir=C:\\path\\to\\sdk\\root▼
</pre>▼
'''''NOTE:''' On Windows, if you used Android Studio to download the SDK, it will be located in <span style="color:green;">C:\\Users\\<username>\\AppData\\Local\\Android\\Sdk</span>.''▼
There are three build types available: <span style="color:darkgreen;">assembleRelease</span>, <span style="color:darkgreen;">assemblePrerelease</span>, & <span style="color:darkgreen;">assembleDebug</span>. From a command line or terminal, move into the <span style="color:green;">android</span> sub-directory & execute the following.▼
Unix/Linux example:
<pre>
# with env variable set or sdk.dir set in local.properties
$ ant android
$ ./gradlew assembleRelease▼
# manually setting env variable
$ ANDROID_SDK_ROOT="/path/to/sdk/root"
</pre>
Windows '''cmd''' example
<pre>
# with env variable set or sdk.dir set in local.properties
> ant android
> gradlew assembleRelease▼
# manually setting env variable (do not use quotes)
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root
> ant android
> gradlew assembleRelease▼
</pre>
The resulting .apk packages will be located in the <span style="color:green;"><source root>/build</span> directory.▼
If <span style="color:darkgreen;">build</span> is used as the argument (<code>gradlew build</code>), it will execute all build types.▼
The build type can be set manually using the <span style="color:green;">android.build</span> property. Value can be one of <span style="color:green;">assembleRelease</span> or <span style="color:green;">assembleDebug</span>. The default is <span style="color:green;">assembleDebug</span>.
▲<pre>
==== Signing Packages ====▼
▲</pre>
Alternatively, an argument line can be passed to Gradle using the <span style="color:green;">gradle.params</span> property:
On most Android systems packages will [https://developer.android.com/studio/publish/app-signing need to be signed] in order to work. By default Gradle will sign packages using a debugging keystore which must by installed in your home directory. You can specify a different keystore by creating a file <span style="color:darkblue;">android/keystore.properties</span> with contents as follows:▼
<pre>
$ ant android -Dgradle.params="assembleRelease assembleDebug"
storeFile=<path-to-keystore-file>▼
storePassword=<store-password>▼
keyPassword=<key-password>▼
keyAlias=<key-alias>▼
</pre>
===
▲The [https://gradle.org/ Gradle Build Tool] is used for building. The necessary tools are already included with the source code. Two scripts are provided for executing the build: <span style="color:green;">app/android/gradlew</span> for Unix/Linux systems
▲As with other instructions on building from the command line, the Android client can also be built with an [https://ant.apache.org/ Apache Ant target]. The same conditions related to invoking the Gradle scripts directly apply to using ant.
▲In order for the build to complete, the scripts must know where the SDK libraries are located. The script will check the '''<span style="color:green;">ANDROID_SDK_ROOT</span>''' environment variable, or it will parse the value of '''<span style="color:green;">sdk.dir</span>''' in the <span style="color:green;">app/android/local.properties</span> file ''('''NOTE:''' Windows users must use double backslashes for directories (\\))''.
▲From the Stendhal source root directory, execute the following.
▲Example <span style="color:green;">local.properties</span> for Unix/Linux:
▲<pre>
▲sdk.dir=/path/to/sdk/root
▲</pre>
Example <span style="color:green;">local.properties</span> for Windows:
<pre>▼
▲sdk.dir=C:\\path\\to\\sdk\\root
</pre>▼
▲'''''NOTE:''' On Windows, if you used Android Studio to download the SDK, it will be located in <span style="color:green;">C:\\Users\\<username>\\AppData\\Local\\Android\\Sdk</span>.''
▲There are
Unix/Linux example:
<pre>
# with env variable set or sdk.dir set in local.properties
▲$ ./gradlew assembleRelease
# manually setting env variable
$ ANDROID_SDK_ROOT="/path/to/sdk/root"
</pre>
Windows '''cmd''' example (note that you do not need to include the ".bat" filename extension):
<pre>
# with env variable set or sdk.dir set in local.properties
▲> gradlew assembleRelease
# manually setting env variable (do not use quotes)
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root
▲> gradlew assembleRelease
</pre>
▲If <span style="color:darkgreen;">build</span> is used as the argument (<code>gradlew build</code>), it will execute all build types.
▲The resulting .apk packages will be located in the <span style="color:green;"><source root>/build</span> directory.
▲==== Signing Packages ====
▲<pre>
▲$ ant dist_client_android -Dandroid.build=assembleRelease
▲</pre>
▲On most Android systems packages will [https://developer.android.com/studio/publish/app-signing need to be signed] in order to work. By default Gradle will sign packages using a debugging keystore which must
<pre>
▲storeFile=<path-to-keystore-file>
▲storePassword=<store-password>
▲keyPassword=<key-password>
▲keyAlias=<key-alias>
</pre>
| |||