BuildStendhalForAndroid: Difference between revisions

Content deleted Content added
imported>AntumDeluge
imported>AntumDeluge
→Building from Command Line: re-organize to make ant preferred build method
 
(24 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.''
 
=== GradleAnt ===
 
Example <span style="color:greenblue;">local.properties''Recommended''</span> for Windows:▼
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>.▼
 
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 build▼
 
# manually setting env variable
$ ANDROID_SDK_ROOT="/path/to/sdk/root" ./gradlewant buildandroid
</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
> ant android
> gradlew build
 
# manually setting env variable (do not use quotes)
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root
> ant android
> gradlew build
</pre>
 
After build completes, theThe resulting .apk packages will be located in the <span style="color:green;"><source root>/build/build_android_client/outputs/apk</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>.
=== Ant ===▼
 
▲<pre>
▲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.
$ 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:
▲From the Stendhal source root directory, execute the following.
 
▲<pre>
$ ant android -Dgradle.params="assembleRelease assembleDebug"
▲</pre>
 
▲=== AntGradle ===
 
▲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:
<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 two build types available: <span style="color:darkgreen;">assembleRelease</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:
<pre>
# with env variable set or sdk.dir set in local.properties
▲$ ./gradlew buildassembleRelease
$ ant dist_client_android
 
# manually setting env variable
$ ANDROID_SDK_ROOT="/path/to/sdk/root" ant./gradlew dist_client_androidassembleRelease
</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
> ant dist_client_android
 
# manually setting env variable (do not use quotes)
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root
> gradlew assembleRelease
> ant dist_client_android
</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.▼
 
▲TheAfter build completes, the resulting .apk packages will be located in the <span style="color:green;"><source root>/build</span> directory.
 
==== Signing Packages ====
 
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:
 
<pre>
storeFile=<path-to-keystore-file>
storePassword=<store-password>
keyPassword=<key-password>
keyAlias=<key-alias>
</pre>