Simplified doc-site generation
[AGL/documentation.git] / docs / 0_Getting_Started / 6_ Developing_an_Application / 6_Create_and_Build_the_Application.md
1 ---
2 edit_link: ''
3 title: Create and Build the Application
4 origin_url: >-
5   https://raw.githubusercontent.com/automotive-grade-linux/docs-sources/master/docs/getting-started/app-workflow-build-app.md
6 ---
7
8 <!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/getting_started/master/image-development-workflow-getting-started-book.yml -->
9
10 # 6. Create and Build the Application #
11
12 In general, you can create and build an application many different ways.
13 Tools and Integrated Development Environments (IDEs) exist in various
14 scenarios that allow you to pick from whatever methodology or workflow
15 with which you are comfortable.
16
17 A simple application you can experiment with is the standard
18 "hello world" application.
19 For information on how to get set up and then clone the Git repository
20 for the "Hello World" application, see the
21 "[Get the Source Files](../../../devguides/reference/xds/part-1/create-app-get-source-files.html)"
22 section.
23
24 Key to developing an application suited for your target hardware is the
25 Standard Software Development Kit (SDK) mentioned in the
26 "[Get Ready to Create Your Application](./app-workflow-prep-app.html)"
27 section.
28 For information on the Standard SDK used with the Yocto Project and with
29 the AGL Project, see the
30 "[Yocto Project Application Development and Extensible Software Development Kit (eSDK)](https://yoctoproject.org/docs/2.4.4/sdk-manual/sdk-manual.html) Manual".
31
32 You can develop your application a number of ways.
33 The following list describes several:
34
35 * **Build the Application Using XDS:**
36   You can use the AGL X(cross) Development System (XDS)
37   to build your application:
38
39   * Use the XDS command line tool.
40     For information on how to build the "Hello World" application using the XDS
41     command line, see the
42     "[Build Using the Command Line](../../../devguides/reference/xds/part-1/create-app-build-cmd-line.html)"
43     section.
44
45   * Use the XDS Dashboard.
46     For information on how to build the application using the XDS Dashboard, see the
47     "[Build Using the XDS Dashboard](../../../devguides/reference/xds/part-1/create-app-build-dashboard.html)"
48     section.
49
50 * **Build the Application Using a Stand-Alone SDK:**
51    Nothing prevents you from using a Standard SDK completely outside of the
52    AGL Project development environment to build your application.
53    Here are a couple of methods:
54
55    * Install Docker and create a container that has your SDK installed.
56      The container is a stable environment where you can build applications.
57      See the
58      "[Setting Up a Docker Container](./docker-container-setup.html)"
59      section for information on how to install Docker and create a container
60      that has your SDK installed.
61
62    * Use the popular Eclipse IDE configured to work with the Yocto Project.
63      See the
64      "[Developing Applications Using Eclipse](https://yoctoproject.org/docs/2.4.4/sdk-manual/sdk-manual.html#sdk-eclipse-project)"
65      section in the Yocto Project Application Development and Extensible
66      Software Development Kit (eSDK) Manual.
67
68    * Using Qt Creator / qmake and want to use the same .pro / .pri file to build for desktop or AGL? Put AGL-specific definitions inside a `linux-oe-*` block in your .pro and .pri files, e.g.:
69      ```
70      linux-oe-* {
71          PKGCONFIG += qlibwindowmanager qtappfw
72          DEFINES += AGL
73          QMAKE_LFLAGS += "-Wl,--hash-style=gnu -Wl,--as-needed"
74          load(configure)
75          qtCompileTest(libhomescreen)
76
77          config_libhomescreen {
78              CONFIG += link_pkgconfig
79              PKGCONFIG += homescreen
80              DEFINES += HAVE_LIBHOMESCREEN
81          }
82
83          DESTDIR = $${OUT_PWD}/../package/root/bin
84      }
85      ```
86
87 * **Build the Application Using Your Own Methodology:**
88   Use any method you are familiar with to create your application.
89   Many development tools and workflows exist that allow you to
90   create applications.