summaryrefslogtreecommitdiffstats
path: root/docs/dev_guide/1-installing-cmake.md
blob: 5de16cdac44be3a87036c02393e6a7eeb4120d41 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Installing CMake Templates

You can install CMake templates on your native Linux system.

In order to use the templates, you need to install them as
a CMake module.
On your native Linux system, use your distribution's package manager.
See the
"[Prerequisites](../host-configuration/docs/2-download-packages.html)"
section for how to install packages using your distribution's package
manager.
Be sure to use the following with you install the packages:

```bash
export DISTRO="xUbuntu_16.10"
export REVISION=Master
```

**NOTE:** In order to use the CMake templates, you must be using the
AGL Guppy release.
You cannot use prior releases.

## Installing on Debian or Ubuntu

Use the following command to install AGL's CMake Application Module
on a native Debian or Ubuntu system:

```bash
sudo apt-get install agl-cmake-apps-module-bin
```

## Installing on OpenSUSE

Use the following command to install AGL's CMake Application Module
on a native OpenSUSE system:

```bash
sudo zypper install agl-cmake-apps-module
```

## Installing on Fedora

Use the following command to install AGL's CMake Application Module
on a native Fedora system:

```bash
sudo dnf install agl-cmake-apps-module
```

# Using CMake Templates in a Cross-Compilation Environment

Beginning with the `Grumpy Guppy`, version 7, the CMakeAfbTemplates CMake module
is installed by default in the SDKs supplied by AGL.
Consequently, you do not need to take steps to install the modules.

Following are links to the latest SDKs on the AGL master branch:

* [dra7xx-evm](https://download.automotivelinux.org/AGL/snapshots/master/latest/dra7xx-evm/deploy/sdk/)
* [dragonboard-410c](https://download.automotivelinux.org/AGL/snapshots/master/latest/dragonboard-410c/deploy/sdk/)
* [intel-corei7-64](https://download.automotivelinux.org/AGL/snapshots/master/latest/intel-corei7-64/deploy/sdk/)
* [m3ulcb-nogfx](https://download.automotivelinux.org/AGL/snapshots/master/latest/m3ulcb-nogfx/deploy/sdk/)
* [qemux86-64](https://download.automotivelinux.org/AGL/snapshots/master/latest/qemux86-64/deploy/sdk/)
* [raspberrypi3](https://download.automotivelinux.org/AGL/snapshots/master/latest/raspberrypi3/deploy/sdk/)

# Using CMake Templates from BitBake Recipes

If you have developed an application and you want to include it in an AGL image,
you must add a BitBake recipe in one of the following layers:

* [meta-agl](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl):
 meta-agl layer (core AGL)
* [meta-agl-cluster-demo](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-cluster-demo):
 cluster demo specific recipes and configuration
* [meta-agl-demo](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-demo):
 meta-agl-demo layer (demo/staging/"one-shot")
* [meta-agl-devel](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-devel):
 meta-agl-devel (Development and Community BSPs)
* [meta-agl-extra](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-extra):
 meta-agl-extra (additional/optional components for AGL)

Once you have the recipe in place, edit it to include the following
line to cause the `aglwgt` class to be inherited:

```bb
inherit aglwgt
```

Following is an example that uses the HVAC application recipe (i.e. `hvac.bb`), which
builds the HVAC application:

```bb
SUMMARY     = "HVAC Service Binding"
DESCRIPTION = "AGL HVAC Service Binding"
HOMEPAGE    = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-hvac"
SECTION     = "apps"

LICENSE     = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"

SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-hvac;protocol=https;branch=${AGL_BRANCH}"
SRCREV  = "${AGL_APP_REVISION}"

PV = "1.0+git${SRCPV}"
S  = "${WORKDIR}/git"

DEPENDS = "json-c"
RDEPENDS_${PN} += "agl-service-identity-agent"

inherit cmake aglwgt pkgconfig
```

----

# Additional Examples

The following links provide further examples of recipes that use the
CMake templates:

* [helloworld-service](https://github.com/iotbzh/helloworld-service)
* [agl-service-audio-4a](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-audio-4a)
* [agl-service-unicens](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-unicens)
* [4a-hal-unicens](https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/4a-hal-unicens)