| {namespace buck.install} |
| |
| /***/ |
| {template .soyweb} |
| {call buck.page} |
| {param title: 'Downloading and Installing Buck' /} |
| {param prettify: true /} |
| {param content} |
| |
| {call buck.platformWarning /} |
| |
| Buck requires that the following tools are already installed: |
| <ul> |
| <li>Oracle JDK 7 |
| <li>Ant |
| <li>Python 2.7 |
| <li>Git |
| <li>Android SDK |
| </ul> |
| |
| Once you have the above tools installed, you can install Buck as follows: |
| {call buck.installationInstructions /} |
| |
| If everything worked correctly, you should see something like: |
| |
| {literal}<pre> |
| buck build tool |
| usage: |
| buck [options] |
| buck command --help |
| buck command [command-options] |
| available commands: |
| audit lists the inputs for the specified target |
| build builds the specified target |
| clean deletes any generated files |
| install builds and installs an APK |
| project generates project configuration files for an IDE |
| targets prints the list of buildable targets |
| test builds and runs the tests for the specified target |
| uninstall uninstalls an APK |
| options: |
| --help : Shows this screen and exits. |
| --version (-V) : Show version number. |
| {/literal}</pre> |
| |
| Because you will likely be running <code>./bin/buck</code> often, you should |
| add it to your <code>$PATH</code> so that you can simply |
| run <code>buck</code> from the command line. One of the easiest ways to do this |
| is to create a symlink to Buck from a directory that is likely already on |
| your <code>$PATH</code>, such as <code>/usr/bin/</code>: |
| |
| <pre>sudo ln -s ${lb}PWD{rb}/bin/buck /usr/bin/buck</pre> |
| |
| To verify that this worked, run <code>which buck</code> to confirm |
| that it maps to <code>/usr/bin/buck</code>. |
| |
| <h2 id="locate-android-sdk">Tell Buck where to find your Android SDK and NDK</h2> |
| |
| Assuming you are using Buck to build Android code, you need to tell Buck where to find your Android |
| SDK (and Android NDK, if you are building native code). You have two options: |
| |
| <h3>Create a local.properties File</h3> |
| |
| The preferred option is to create a <code>local.properties</code> file in the root of your project. |
| It should define <code>sdk.dir</code> to identify the path to your Android SDK |
| and <code>ndk.dir</code> to identify the path to your Android NDK. |
| Be sure to specify an absolute path. |
| |
| // This is not actually Python code, but lang-py results in the desired effect. |
| <pre class="prettyprint lang-py"> |
| sdk.dir=/home/username/android-sdk-linux<br> |
| {\n} |
| # This is necessary only if you are building native code<br> |
| # using build rules such as ndk_library().<br> |
| ndk.dir=/home/username/android-ndk-r8b |
| </pre> |
| |
| <h3>Define environment variables</h3> |
| |
| If Buck cannot find the necessary paths in a <code>local.properties</code> file, then it will fall |
| back on environment variables. The location of the Android SDK can be specified by either an |
| {sp}<code>ANDROID_SDK</code> or <code>ANDROID_HOME</code> environment variable. (If both are |
| specified, then <code>ANDROID_SDK</code> takes precedence.) |
| The location of the Android NDK can be specified by an <code>ANDROID_NDK</code> environment |
| variable. |
| |
| <pre> |
| export ANDROID_SDK=/home/username/android-sdk-linux<br> |
| export ANDROID_HOME=/home/username/android-sdk-linux<br> |
| export ANDROID_NDK=/home/username/android-ndk-r8b |
| </pre> |
| |
| If you choose to go this route, you likely want to add these definitions to your |
| {sp}<code>~/.bash_profile</code> on OS X or <code>~/.bashrc</code> on Linux. |
| |
| {/param} |
| {/call} |
| {/template} |