summaryrefslogtreecommitdiffstats
path: root/app/images/HMI_Phone_Button_9_Active-01.svg
blob: 7901950219d31c74aa08d4815460dc28cd29c618 (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
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
	<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
	<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
	<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
	<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
	<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
	<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
	<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
	<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Active" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 172 172"
	 style="enable-background:new 0 0 172 172;" xml:space="preserve">
<style type="text/css">
	.st0{opacity:0.35;fill:url(#SVGID_1_);}
	.st1{fill:#FFFFFF;}
	.st2{font-family:'Roboto-Light';}
	.st3{font-size:78.8169px;}
	.st4{fill:none;stroke:#0DF9FF;stroke-miterlimit:10;}
</style>
<switch>
	<g i:extraneous="self">
		<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-0.9569" y1="168.4538" x2="172.9569" y2="3.5462">
			<stop  offset="0.136" style="stop-color:#00ADDC;stop-opacity:0.94"/>
			<stop  offset="0.9332" style="stop-color:#0DF9FF;stop-opacity:0.6"/>
		</linearGradient>
		<rect x="1.2" y="1.2" class="st0" width="169.5" height="169.5"/>
		<text transform="matrix(1 5.460000e-03 -5.460000e-03 1 64.0339 108.9132)" class="st1 st2 st3">9</text>
		<rect x="1.2" y="1.2" class="st4" width="169.5" height="169.5"/>
	</g>
</switch>
</svg>
Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
# Autobuild

Applications based on the AGL framework should have a
full build and packaging solution that is independent of the
[Yocto Project](https://www.yoctoproject.org) workflow.

You can create a script named **autobuild** to control applications
build operations.
AGL provides a BitBake class file (`aglwgt.bbclass`) that calls the
**autobuild** script for all operations.
The class file is located at the top level of the application repository.

You can write the **autobuild** script using any of the following languages:

* Makefile
* Bash
* Python

The script executes directly after applying a `chmod()` command.
The caller, which can be the `aglwgt.bbclass`, a Jenkins job, or an actual person,
must make the **autobuild** executable before calling it.
To facilitate direct execution, you need to start the script with a
[shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) sequence:

* '#!/usr/bin/make -f' for Makefile format
* '#!/usr/bin/bash' for Bash format

The calling convention is similar to the convention used in `make`.
To pass arguments, use environment variables.

**NOTE:** For Bash, an evaluation of the arguments
sets the environment variables correctly.

The following format shows the generic call:

```bash
autobuild/agl/autobuild <command> [ARG1="value1" [ARG2="value2" ... ]]
```

The **autobuild** script can be invoked from any directory
with all paths considered to be relative to the
script's location.
For makefile scripts, this is the usual behavior.
For Bash scripts, a `cd $(dirname $0)` command must be run at
the beginning of the script.

At build time, the following calls must be made in the following order:

1. Initialize the build environment (e.g if the application uses
   `cmake` the configure step runs CMake).

   ```bash
   autobuild/agl/autobuild configure CONFIGURE_ARGS="..."
   ```

2. Build the application (i.e. compile, link binaries, assembles javascript,
   and so forth).

   ```bash
   autobuild/agl/autobuild build BUILD_ARGS="...."
   ```

3. Create the widget package(s) in the specified destination path
   prepared by the caller.

   ```bash
   autobuild/agl/autobuild package PACKAGE_ARGS="..." DEST=<path-for-resulting-wgt-files>
   ```

4. Create the test widget package(s) in the specified destination path
   prepared by the caller.

   ```bash
   autobuild/agl/autobuild package-test PACKAGE_ARGS="..." DEST=<path-for-resulting-wgt-files>
   ```

5. Clean the built files by removing the result of the **autobuild** build.

   ```bash
   autobuild/agl/autobuild clean CLEAN_ARGS="..."
   ```

6. Clean everything by removing the result of the **autobuild** build
   and the **autobuild** configure.

   ```bash
   autobuild/agl/autobuild distclean DISTCLEAN_ARGS="..."
   ```

## Integrating **autobuild** into the Yocto Project Workflow

If you want to integrate the **autobuild** script into the Yocto Project
workflow, you need to generate the script.
To generate the script, use the `autobuild` target.

The following commands create the **autobuild** script in the
`autobuild/agl` directory:

```bash
mkdir -p build
cd build
cmake .. && make autobuild
```

## Available Targets

Following are the targets available from the **autobuild** script:

- **clean**: Removes all the object files and target results generated by Makefile.
- **clean-{release,debug,coverage,test}**: Removes all the object files and target results generated by Makefile for the specified build type.
- **clean-all**: Deletes the build directories for all build types.
- **distclean**: Deletes the build directories for all build types.
- **configure**: Generates the project Makefile from the `CMakeLists.txt` files for the release build type.
- **configure-{release,debug,coverage,test}**: Generates the project Makefile from the `CMakeLists.txt` files for the specified build type.
- **build**: Compiles all project targets for the release build type.
- **build-{release,debug,coverage,test}**: Compiles all project targets for the specified build type.
- **build-all**: Compiles all project targets for all specified build types.
- **package**: Builds the widget (**wgt**) package for the release build type.
- **package-{release,debug,coverage}**: Builds the widget (**wgt**) package for the specified build type.
- **package-test**: Builds the test **wgt** package.
- **package-all**: Builds the widget (**wgt**) packages for all build types.
- **install**: Installs the project into your filesystem.

Note that `aglwgt.bbclass` only will use the **package-{coverage,test}** targets (and thus the **build-{coverage,test}**, etc. targets) for service bindings by default, so **autobuild** scripts for  applications may omit support for those.

Specifying the following variables lets you modify compilation behavior:

- **CLEAN_ARGS**: Variable used at **clean** time.
- **CONFIGURE_ARGS**: Variable used at **configure** time.
- **BUILD_ARGS**: Variable used at **build** time.
- **BUILD_DIR**: Build directory for release type build.
  The default value is a "build" directory in the root of the project.
- **BUILD_DIR_DEBUG**: Build directory for debug type build.
  The default value is a "build-debug" directory in the root of the project.
- **BUILD_DIR_TEST**: Build directory for test type build.
  The default value is a "build-test" directory in the root of the project.
- **BUILD_DIR_COVERAGE**: Build directory for coverage type build.
  The default value is a "build-coverage" directory in the root of the project.
- **DEST**: Directory in which to place the created ***wgt*** file(s).
  The default directory is the build root directory.

Note that the values of **BUILD_DIR_{DEBUG,TEST,COVERAGE}** are defined based on the value of **BUILD_DIR**, so this needs to be kept in mind if over-riding it and building those other widget types.

When you provide a variable, use the CMake format (i.e.
BUILD_ARGS="-DC_FLAGS='-g -O2'").
Following is an example:

```bash
./autobuild/agl/autobuild package DEST=/tmp
```