summaryrefslogtreecommitdiffstats
path: root/docs/part-1/create-app-get-source-files.md
blob: 7fca3824dd27d9cf8f9de9fa0d70302d452b912a (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Get the Source Files

XDS needs to be able to share your application source files.
This section describes the options you have for sharing your
files with the server running XDS.

## Source Sharing Methods

For this example, you will use the _helloworld-native-application_
project.
You must clone this project's repository into a directory that
`xds-server` can access.

Two methods exist:

- If you Client Part is configured for SaaS (i.e. Cloud Sync), the local
  directory into which you clone your application project is sent to
  and replicated on the server running XDS.
  This implies that you can use any local directory for your cloned
  application repository.

- If you `xds-server` is running locally, you can use path mapping.
  Path mapping uses a volume shared between your development host and the server
  that is running XDS.
  The directory shared is `$HOME/xds-workspace`.
 
  <!-- section-note -->
  **NOTE:**

  The path mapping method of sharing files is more efficient than
  replicating the project on the XDS server.
  However, you must clone the project under a directory that can be shared.
  The most convenient directory is the default shared directory, which is
  `$HOME/xds-workspace`.
  
  You could create additional shared volumes.
  To create more shared volumes, See the
  "[Create and Start a New Container](server-part.html#create-and-start-a-new-container)"
  section.

## Which File Sharing Method Should I Choose?

The file sharing method you choose depends on the
Client Part configuration (i.e. Standalone, On-Premise or SaaS).

- Standalone uses local path mapping. With this configuration, it
  makes no sense to use SaaS (Cloud Sync) as it adds unnecessary overhead.

- On-Premise uses Cloud Sync.

- SaaS also uses Cloud Sync. With this configuration, replicating the
  application project files on the XDS server is the only way to achieve
  file sharing.

<!-- section-note -->
**NOTE:**

The
[helloworld-native-application](https://github.com/iotbzh/helloworld-native-application)
project is an AGL project that is based on CMake
(i.e. [cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/)).
For information on installing and using the CMake templates, see the
"[Installing the CMake Templates](../../../../devguides/reference/cmakeafbtemplates/dev_guide/installing-cmake.html)"
section.
CMake templates, when used to develop applications
with the AGL Application Framework, automatically generate Makefile rules
(e.g. `remote-target-populate`) or scripts (e.g. `build/target/xxx` scripts).
<!-- end-section-note -->

## Clone project

Now that you know where you are going to put your application files,
you can clone the repository.
In the following example, the local repository is cloned to the
default shared directory assuming path mapping, which is for
a Client Part Standalone configuration.

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