aboutsummaryrefslogtreecommitdiffstats
path: root/docs/part-1/4-1_build-first-app-setup.md
blob: 9224a77dcfe7b4d3999f78678d7e572414a55dba (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
38
39
40
# 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](./1-1_install-xds-server-docker.html#create-and-start-a-new-container) )

### Which one should I choose ?

It depends on your [deployment setup](./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 [cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/) (refer to install cmake module [instructions](../../cmakeafbtemplates/dev_guide/installing-cmake.html)). 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](../../../#using-the-cmake-applications-module).

<!-- end-section-note -->

## Clone project

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