BuildStendhalForAndroid: Difference between revisions

Content deleted Content added
imported>AntumDeluge
Gradle: changes to instructions
imported>AntumDeluge
Building from Command Line: re-organize to make ant preferred build method
 
(22 intermediate revisions by the same user not shown)
Line 33:
 
'''''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.''
 
=== Ant ===
 
<span style="color:blue;">''Recommended''</span>
 
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.
 
'''''See also: [[BuildStendhalForAndroid#Signing_Packages|section on signing packages]]'''''
 
From the Stendhal source root directory, execute the following.
 
Unix/Linux example:
<pre>
# with env variable set or sdk.dir set in local.properties
$ ant android
 
# manually setting env variable
$ ANDROID_SDK_ROOT="/path/to/sdk/root" ant dist_client_androidandroid
</pre>
 
Windows '''cmd''' example:
<pre>
# with env variable set or sdk.dir set in local.properties
> ant android
 
# manually setting env variable (do not use quotes)
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root
> ant android
</pre>
 
The resulting .apk packages will be located in the <span style="color:green;"><source root>/build</span> directory.
 
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>
$ ant android -Dandroid.build=assembleRelease
</pre>
 
Alternatively, an argument line can be passed to Gradle using the <span style="color:green;">gradle.params</span> property:
 
<pre>
$ ant android -Dgradle.params="assembleRelease assembleDebug"
</pre>
 
=== Gradle ===
 
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, &and <span style="color:green;">app/android/gradlew.bat</span> for Windows.
 
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 (\\))''.
 
Example <span style="color:green;">local.properties</span> for Unix/Linux:
Line 52 ⟶ 95:
'''''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 threetwo build types available: <span style="color:darkgreen;">assembleRelease</span>, <span style="color:darkgreen;">assemblePrerelease</span>, &and <span style="color:darkgreen;">assembleDebug</span>. From a command line or terminal, move into the <span style="color:green;">app/android</span> sub-directory &and execute the following.
 
Unix/Linux example:
Line 75 ⟶ 118:
If <span style="color:darkgreen;">build</span> is used as the argument (<code>gradlew build</code>), it will execute all build types.
 
After build completes, the resulting .apk packages will be located in the <span style="color:green;"><source root>/build/build_android_client/outputs/apk</span> directory.
'''''NOTE:''' For <span style="color:darkgreen;">assemblePrerelease</span> & <span style="color:darkgreen;">assembleDebug</span> to succeed, you must have the Android debugging keystore installed in your home directory. <span style="color:darkgreen;">assembleRelease</span> does not sign the .apk package. It will [https://developer.android.com/studio/publish/app-signing need to be signed] to work on most Android systems.''
 
==== Signing Packages ====
After build completes, the resulting .apk packages will be located in <span style="color:green;"><source root>/build/build_android_client/outputs/apk</span>.
 
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 be installed in your home directory. You can specify a different keystore by creating a file <span style="color:darkblue;">app/android/keystore.properties</span> with contents as follows:
=== Ant ===
 
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.
 
From the Stendhal source root directory, execute the following.
 
Unix/Linux example:
<pre>
storeFile=<path-to-keystore-file>
# with env variable set or sdk.dir set in local.properties
storePassword=<store-password>
$ ant dist_client_android
keyPassword=<key-password>
 
keyAlias=<key-alias>
# manually setting env variable
$ ANDROID_SDK_ROOT="/path/to/sdk/root" ant dist_client_android
</pre>
 
Windows '''cmd''' example:
<pre>
# with env variable set or sdk.dir set in local.properties
> ant dist_client_android
 
# manually setting env variable (do not use quotes)
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root
> ant dist_client_android
</pre>
 
The resulting .apk packages will be located in the <span style="color:green;"><source root>/build</span> directory.