BuildStendhalForAndroid: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>AntumDeluge |
imported>AntumDeluge →Building from Command Line: re-organize to make ant preferred build method |
||
| (11 intermediate revisions by the same user not shown) | |||
| Line 34: | 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.'' |
'''''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 === |
||
| ⚫ | |||
| ⚫ | 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 |
||
| ⚫ | 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]]''''' |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
Unix/Linux example: |
Unix/Linux example: |
||
<pre> |
<pre> |
||
# with env variable set or sdk.dir set in local.properties |
# with env variable set or sdk.dir set in local.properties |
||
$ ant android |
|||
| ⚫ | |||
# manually setting env variable |
# manually setting env variable |
||
$ ANDROID_SDK_ROOT="/path/to/sdk/root" |
$ ANDROID_SDK_ROOT="/path/to/sdk/root" ant android |
||
</pre> |
</pre> |
||
Windows '''cmd''' example |
Windows '''cmd''' example: |
||
<pre> |
<pre> |
||
# with env variable set or sdk.dir set in local.properties |
# with env variable set or sdk.dir set in local.properties |
||
> ant android |
|||
> gradlew build |
|||
# manually setting env variable (do not use quotes) |
# manually setting env variable (do not use quotes) |
||
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root |
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root |
||
> ant android |
|||
> gradlew build |
|||
</pre> |
</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>. |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
$ ant android -Dandroid.build=assembleRelease |
|||
| ⚫ | |||
Alternatively, an argument line can be passed to Gradle using the <span style="color:green;">gradle.params</span> property: |
|||
| ⚫ | |||
| ⚫ | |||
$ ant android -Dgradle.params="assembleRelease assembleDebug" |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | 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 (\\))''. |
||
| ⚫ | |||
<pre> |
|||
| ⚫ | |||
</pre> |
|||
Example <span style="color:green;">local.properties</span> for Windows: |
|||
<pre> |
|||
| ⚫ | |||
</pre> |
|||
| ⚫ | |||
| ⚫ | |||
Unix/Linux example: |
Unix/Linux example: |
||
<pre> |
<pre> |
||
# with env variable set or sdk.dir set in local.properties |
# with env variable set or sdk.dir set in local.properties |
||
| ⚫ | |||
$ ant dist_client_android |
|||
# manually setting env variable |
# manually setting env variable |
||
$ ANDROID_SDK_ROOT="/path/to/sdk/root" |
$ ANDROID_SDK_ROOT="/path/to/sdk/root" ./gradlew assembleRelease |
||
</pre> |
</pre> |
||
Windows '''cmd''' example: |
Windows '''cmd''' example (note that you do not need to include the ".bat" filename extension): |
||
<pre> |
<pre> |
||
# with env variable set or sdk.dir set in local.properties |
# 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) |
# manually setting env variable (do not use quotes) |
||
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root |
> set ANDROID_SDK_ROOT=C:\\path\\to\\sdk\\root |
||
> gradlew assembleRelease |
|||
> ant dist_client_android |
|||
</pre> |
</pre> |
||
If <span style="color:darkgreen;">build</span> is used as the argument (<code>gradlew build</code>), it will execute all build types. |
|||
| ⚫ | |||
| ⚫ | |||
==== 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> |
|||