aboutsummaryrefslogtreecommitdiffstats
path: root/docs/part-1/4-1_build-first-app-setup.md
blob: 7b8fff2e3b7c22cc3f83a908f9dade03519001c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Setup

## Sources Sharing Methods

### What are possible ways to share source trees ?

Let's use _helloworld-native-application_ project as example, so you need first to clone
this project into a directory that will be accessible by `xds-server`.

There are two possible methods to share sources between your host and the XDS server:
- Cloud sync: implies your local directory will be sent to and replicated on the server. This method lets you clone project anywhere on your local disk,
- Path mapping: apply when the xds-server is running locally. This method uses a volume shared between your host and the server, typically `$HOME/xds-workspace` directory. It is much more efficient as there is no replication onto the server ; but you must clone project under the shared directory (`$HOME/xds-workspace` is a good choice because it is shared by default. To create more shared volumes, See --volume option of [container creation script](http://docs.automotivelinux.org/docs/devguides/en/dev/reference/xds/part-1/1-1_install-xds-server-docker.html#create-and-start-a-new-container) )

### Which one should I choose ?

It depends on your [deployment setup](http://docs.automotivelinux.org/docs/devguides/en/dev/reference/xds/part-1/0_Abstract.html) (Standalone, On-Premise or SaaS).

* Standalone : use local path mapping. It makes no sense to use cloud sync as it would add pointless overhead.
* On-Premise : use Clound Sync.
* SaaS : use Cloud Sync. This is the only way to achieve source sharing in this deployment setup.

<!-- section-note -->
**Note:** : [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) project is an AGL
project based on [app-templates](https://git.automotivelinux.org/apps/app-templates/)
(included as a git submodule). This CMake templating, used to develop application
with the AGL Application Framework, will automatically generate makefile rules
(eg. `remote-target-populate`) or scripts (eg. `build/target/xxx` scripts).

For more info about app-template, please refer to [this documentation](http://docs.automotivelinux.org/docs/devguides/en/dev/reference/sdk-devkit/docs/part-2/2_4-Use-app-templates.html).
<!-- end-section-note -->

## Clone project

```bash
cd $HOME/xds-workspace
git clone --recursive https://github.com/iotbzh/helloworld-native-application.git
```