summaryrefslogtreecommitdiffstats
path: root/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application')
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md29
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md29
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md83
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md173
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md95
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md246
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.pngbin0 -> 33626 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.pngbin0 -> 27347 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.pngbin0 -> 43104 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.pngbin0 -> 37485 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.pngbin0 -> 48408 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.pngbin0 -> 56598 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.pngbin0 -> 49093 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.pngbin0 -> 50729 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.pngbin0 -> 2268 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.pngbin0 -> 32731 bytes
-rw-r--r--docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.pngbin0 -> 149628 bytes
17 files changed, 655 insertions, 0 deletions
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md
new file mode 100644
index 0000000..c8a04c0
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md
@@ -0,0 +1,29 @@
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml -->
+
+# Overview
+
+The application development workflow using XDS begins with
+making sure you have met all the
+[requirements](create-app-requirements.html) needed to
+use the tool.
+
+Once requirements are met, you have some options for
+[getting the application source files](create-app-get-source-files.html)
+together.
+These options depend on where the XDS Server part is
+running and which Client Part configuration you are using
+(i.e. Standalone, On-Premise, or SaaS).
+
+You can build the application several ways:
+
+- Use the XDS Client
+ [Command Line](create-app-build-cmd-line.html)
+- Use the XDS Client
+ [Dashboard](create-app-build-dashboard.html)
+- Use a third-party Interactive Development Environment
+ ([IDE](create-app-build-ide.html)) application
+ (e.g. NetBeans, Visual Studio, and so forth).
+
+The following figure overviews the XDS application development process:
+
+![](pictures/create-app-workflow.png){:: style="margin:auto; display:flex"}
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md
new file mode 100644
index 0000000..e483e28
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md
@@ -0,0 +1,29 @@
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml -->
+
+# Requirements
+
+Before you can build your application using XDS, you need to be
+sure you have satisfied the requirements described in this section.
+
+- The agent is running locally on your machine.
+ For information about the agent and how to install it, see the
+ "[Client Part](client-part.html)" topic.
+
+- The server is running locally in a Docker container
+ or is accessible on your network
+ For information about the server and how to install it, see the
+ "[Server Part](server-part.html)" topic.
+
+- one or more Software Development Kits (SDKs) are installed.
+ For information on installing an SDK, see the
+ "[AGL SDKs](install-sdk.html)" or
+ "[Download or Build Your SDK Installer](../../../../getting_started/reference/getting-started/app-workflow-sdk.html)"
+ topics.
+
+- Your XDS configuration is correct.
+ You can test this connection between the agent and the server
+ by opening the XDS Dashboard in a Web Browser and confirming
+ no error messages.
+ See the
+ "[Check if xds-server is Running](server-part.html#check-if-xds-server-is-running)"
+ topic.
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md
new file mode 100644
index 0000000..7f813ca
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md
@@ -0,0 +1,83 @@
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml -->
+
+# 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
+```
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md
new file mode 100644
index 0000000..05a24dd
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md
@@ -0,0 +1,173 @@
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml -->
+
+# Build Using the Command Line
+
+One option for building your application using XDS is to use
+the command line (i.e. `xds-cli`).
+Building the application consists of declaring your project, identifying
+some key ID values, and then using the command line to build it.
+
+<!-- section-note -->
+**NOTE:**
+
+XDS tools, including `xds-cli`, are installed by default in
+the `/opt/AGL/bin` directory.
+During installation, this directory is automatically added to your
+`PATH` variable.
+If, for some reason, the tool is not in your `PATH` directory,
+you can manually add it using the `export PATH=${PATH}:/opt/AGL/bin`
+command.
+<!-- end-section-note -->
+
+
+## Declare Project
+
+Use the `projects add` command to declare your project:
+
+```bash
+xds-cli prj add --label="Project_helloworld-native-application" --type=pm --path=/home/seb/xds-workspace/helloworld-native-application --server-path=/home/devel/xds-workspace/helloworld-native-application
+```
+
+When you declare the project, XDS creates the `xds-project.conf`
+configuration file if one does not already exist.
+You should examine this configuration file before you build the
+project to be sure all configurations are correct for your project.
+
+<!-- section-note -->
+**NOTE:**
+
+If the Server Part (i.e. `xds-agent`) is not running on the default
+port, you can use the `--url=http://localhost:<port>` option with the
+`xds-cli prj add` command to specify the port.
+Just substitute the actual port for `<port>` with the option.
+<!-- end-section-note -->
+
+## Determine the ID of Your Project
+
+After declaring your project, you need to determine the
+unique ID of your project.
+
+From the command line, use the `prj ls` command, which is an abbreviation
+for the `projects list` command:
+
+```bash
+xds-cli prj ls
+ID Label LocalPath
+f9904f70-d441-11e7-8c59-3c970e49ad9b Project_helloworld-service /home/seb/xds-workspace/helloworld-service
+4021617e-ced0-11e7-acd2-3c970e49ad9b Project_helloworld-native-application /home/seb/xds-workspace/helloworld-native-application
+```
+
+Once you have the ID of the project, you can use the `--id` option
+or the `XDS_PROJECT_ID` environment variable to refer to your project.
+
+<!-- section-note -->
+**NOTE:**
+
+When using the project ID from the command line, you can use the "short"
+notation by providing a non-ambiguous portion of the ID.
+For example, to refer to the `Project_helloworld-native-application` project
+shown in the previous example, you can use `-id 40` rather than
+`--id 40 instead of --id 4021617e-ced0-11e7-acd2-3c970e49ad9b`.
+<!-- end-section-note -->
+
+## Determine the ID of Your SDK
+
+You also need to determine the ID of the SDK you want to use to cross-build
+your application.
+
+To list installed SDKs, use the following command:
+
+```bash
+xds-cli sdks ls
+List of installed SDKs:
+ ID NAME
+ 7aa19224-b769-3463-98b1-4c029d721766 aarch64 (3.99.1+snapshot)
+ 41a1efc4-8443-3fb0-afe5-8313e0c96efd corei7-64 (3.99.2+snapshot)
+ c226821b-b5c0-386d-94fe-19f807946d03 aarch64 (3.99.3)
+```
+
+SDK IDs are returned by architecture and version.
+Be sure to identify the SDK you need.
+
+## Build the Application
+
+You can now use XDS to cross-build your project.
+Following is an example that builds a project that is based on CMake:
+
+```bash
+# First, export the target IP address, or it's DNS name
+export TARGET_ADDRESS=<target_adress>
+
+# Go into your project directory and create a build directory
+cd $MY_PROJECT_DIR
+mkdir build
+```
+
+Before using the command line to build the project, you should be
+sure the project's configuration file is correct.
+Examine the `xds-project.conf` configuration file and edit it
+as needed.
+
+Generate the build system using CMake:
+
+```
+# You must set RSYNC_* variables so that you deploy and populate widgets on the target
+xds-cli exec --id=4021617e --sdkid=c226821b -- "export RSYNC_TARGET=root@${TARGET_ADDRESS} ; export RSYNC_PREFIX=/opt ; cd build && cmake .."
+```
+
+Now you can build the project:
+
+```
+xds-cli exec --id=4021617e --sdkid=c226821b -- "cd build && make widget"
+```
+
+<!-- section-note -->
+**NOTE:**
+
+If you use `&&`, `||` or `;` statements in the executed command line,
+you need to double quote the command (e.g. `"cd build && make"`).
+<!-- end-section-note -->
+
+To avoid having to set the project ID, SDK ID, and URL for each
+command line, you can define these settings as environment variables
+using an environment file.
+Use the `--config` option or source file before executing
+the `xds-cli` command.
+
+To specify your configuration file with the command line,
+use the `--config` option.
+For example, the equivalent of the previous build command but
+with a specified configuration file is as follows:
+
+```bash
+# MY_PROJECT_DIR=/home/seb/xds-workspace/helloworld-native-application
+cd $MY_PROJECT_DIR
+
+# Edit and potentially adapt xds-project.conf file that has been created
+# automatically on project declaration using XDS Dashboard
+cat xds-project.conf
+ # XDS project settings
+ export XDS_AGENT_URL=localhost:8800
+ export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b
+ export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03
+
+# Create build directory and invoke cmake and then build project
+xds-cli exec --config=./xds-project.conf -- "mkdir -p build && cd build && cmake .."
+cd build && xds-cli exec --config=../xds-project.conf -- "make all"
+```
+
+Alternatively, you could first source the configuration file to avoid using the
+`--config` option as follows:
+
+```
+source xds-project.conf
+xds-cli exec "mkdir -p build && cd build && cmake .."
+cd build && xds-cli exec "make all"
+```
+
+<!-- section-note -->
+**NOTE:**
+
+All parameters after a double dash (`--`) are considered as the command
+to execute.
+<!-- end-section-note -->
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md
new file mode 100644
index 0000000..07d9092
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md
@@ -0,0 +1,95 @@
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml -->
+
+# Build Using the XDS Dashboard
+
+One option for building your application using XDS is to use
+the XDS Dashboard.
+Building the application consists of using the dashboard
+to declare your project and then initiate the build.
+
+## Declare Project
+
+Follow these steps to declare the project:
+
+1. Open a Web Browser and connect to to the XDS Dashboard.
+
+ The URL you use depends of your configuration (e.g. `http://localhost:8800`).
+
+2. Open the right sidebar and select the `Projects` entry to open the
+ project page.
+ Once the page is open, declare a new project by clicking on the
+ "plus" icon next to "Add Project":
+
+ ![](./pictures/xds-dashboard-icon-2.png){:: style="margin:auto; display:flex"}
+
+ When you declare the project, XDS creates the `xds-project.conf`
+ configuration file if one does not already exist.
+ You should examine this configuration file before you build the
+ project to be sure all configurations are correct for your project.
+
+ The configuration file can be very useful when you plan to use
+ XDS client tools such as `xds-cli` or `xds-gdb`.
+
+ <!-- pagebreak -->
+
+3. Set `Sharing Type` appropriately depending on your Client Part
+ configuration:
+
+ ![](./pictures/xds-dashboard-prj-1.png){:: style="width:90%; max-width:560px; margin:auto; display:flex"}
+
+ <!-- section-note -->
+ **NOTES:**
+
+ - When `Path mapping` type is selected, you must clone your project into
+ `$HOME/xds-workspace` directory, which is named **Local Path** in the modal window.
+
+ - If XDS server is running in the XDS docker container
+ the **Server Path** must be set to `/home/devel/xds-workspace/<xxx>`
+ where `<xxx>` is your project directory name.
+ See the "[Installation based on Docker container](server-part.html#docker-container))"
+ section for more information.
+
+ - If you select `Cloud Sync`, you can clone your project wherever you want on
+ your local disk.
+ <!-- end-section-note -->
+
+## Build the Application
+
+Building the application requires opening the build page's "build entry" in the
+left navigational pane, selecting both the project and the SDK, and
+then initiating the build.
+
+<!-- section-note -->
+**NOTE:**
+
+To use the `helloworld-native-application` example, you need to provide
+some configuration items.
+Specifically, you must pass values for both the
+`RSYNC_TARGET` and `RSYNC_PREFIX` environment variables.
+To pass these variables, use the `Settings` window in the `Build` tab.
+You can use the `Env variables` field to pass a list of environment variables
+that are set on the server prior to the build occurring.
+You must separate individual variables using the semi-colon character:
+
+```
+RSYNC_TARGET=root@<mytarget>;RSYNC_PREFIX=/opt
+```
+
+When you pass these variables, substitute `<mytarget>` with the valid
+target IP address or DNS name entry.
+<!-- end-section-note -->
+
+Follow these steps to build the application:
+
+1. Open the build page build entry in the left-hand navigation pane:
+
+ ![](./pictures/xds-dashboard-icon-3.png){:: style="display:inline; padding:0;"},
+
+2. Select your **Project**.
+
+3. Seclect the **Cross SDK** you want to use.
+
+4. Click the **Clean / Pre-Build / Build / Populate** buttons to execute
+ the build action you want.
+
+ ![](./pictures/xds-dashboard-prj-2.png){:: style="width:90%; max-width:600px; margin:auto; display:flex"}
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md
new file mode 100644
index 0000000..6effb00
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md
@@ -0,0 +1,246 @@
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml -->
+
+# Build using an IDE
+
+One option for building your application using XDS is to use
+an Integrated Development Environment
+([IDE](https://en.wikipedia.org/wiki/Integrated_development_environment)).
+Many IDEs exist (e.g. [NetBeans](https://netbeans.org/),
+[Visual Studio Code](https://code.visualstudio.com/),
+[Qt Creator](https://www.qt.io/),
+[Eclipse](https://www.eclipse.org/), and so forth).
+
+This section first develops an XDS configuration file
+(i.e. `xds-project.conf`) and then provides two
+examples, NetBeans and Visual Studio, that do the following.
+
+- NetBeans: Creates two separate build configurations
+ for a project, which makes it easy to switch back and forth
+ between types of builds.
+
+- Visual Studio: Creates tasks that allow you to build an example
+ based on CMake templates.
+
+## XDS Configuration File
+
+This section shows how to create an XDS configuration file
+(i.e. `xds-project.conf`) or how to re-use an existing file.
+For example, the following commands set up the configuration
+file for an `aarch64` SDK to cross-build the
+application for a Renesas Gen3 board.
+
+```bash
+# create file at root directory of your project
+# for example:
+# MY_PROJECT_DIR=/home/seb/xds-workspace/helloworld-native-application
+cat > $MY_PROJECT_DIR/xds-project.conf << EOF
+ export XDS_AGENT_URL=localhost:8800
+ export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b
+ export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03
+EOF
+```
+
+## NetBeans
+
+This section creates two configurations: one to compile the
+project natively using native GNU gcc, and one to cross-compile
+the project using XDS.
+
+Having two configurations allows you to easily switch between them
+using NetBean's **Run -> Set Project Configuration** menu.
+
+### Native Configuration
+
+Follow these steps to create the native configuration:
+
+1. Open the **Tools** -> **Options** menu.
+
+2. Open the **C/C++** tab.
+
+3. Click on the **Add** button in the **Build Tools** sub-tab:
+
+ ![Add new tool panel](./pictures/nb_newtool.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+4. Fill the **Make Command** and **Debugger Command** fields to point to the XDS tools:
+
+ ![Add new tool panel](./pictures/nb_xds_options.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+5. Click **OK**.
+
+6. Select the **File** -> **New Project** menu item to declare the
+ project and create a native configuration.
+
+7. Select **C/C++ Project with Existing Sources** and click on **Next**.
+
+8. Specify your project directory and set **Select Configuration Mode** to
+ "Custom".
+ Be sure to keep **Tool Collection** set to "Default GNU" in order to create a
+ *native configuration*, which is based on the native GNU GCC.
+
+9. Click **Next**.
+
+ ![Select Model panel](./pictures/nb_new-project-1.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+10. Update the **Run in Folder** field to add the `build_native` suffix.
+ Doing so results in the build files being located in the
+ `build_native` sub-directory.
+ Be sure to keep the defaults for all other settings and then click **Next**.
+
+ ![Select Model panel](./pictures/nb_new-project-2.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+11. Click through **Next** several times while always keeping the
+ default settings until the **Finish** button appears.
+
+12. Click **Finish** to complete the creation of the native configuration.
+
+### Cross-Compilation Configuration
+
+Follow these steps to create the configuration for cross-compilation
+based on the XDS tools:
+
+1. Edit project properties (using menu **File** -> **Project Properties**)
+ to add a new configuration that will use XDS to cross-compile
+ your application for example for a Renesas Gen3 board.
+
+2. in the **Build** category, click on **Manage Configurations** button
+ and then **New** button to add a new configuration named for example
+ "Gen3 board".
+
+ ![Select Build category](./pictures/nb_new-project-3.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+3. Click the **Set Active** button.
+
+4. Select the **Pre-Build** sub-category, and set the following:
+
+ - Working Directory: `build_gen3`
+ - Command Line: `xds-cli exec -c ../xds-project.conf -- cmake -DRSYNC_TARGET=root@renesas-gen3 -DRSYNC_PREFIX=/opt ..`
+ - Pre-build First: `ticked`<br/><br/>
+
+5. Select the **Make** sub-category, and set the following:
+
+ - Working Directory: `build_gen3`
+ - Build Command: `xds-cli exec -c ../xds-project.conf -- make remote-target-populate`
+ - Clean Command: `xds-cli exec -c ../xds-project.conf -- make clean`<br/><br/>
+
+ ![Select Make sub-category](./pictures/nb_new-project-4.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+6. Select the **Run** sub-category, and set the following:
+
+ - Run Command: `target/start-on-root@renesas-gen3.sh`
+ - Run Directory: `build-gen3`<br/><br/>
+
+ ![Select Run sub-category](./pictures/nb_new-project-5.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"}
+
+7. Click **OK** to save settings.
+
+By changing the configuration from **Default** to **Gen3 board**, you can
+compile your helloworld application natively, which is the default configuration.
+Or, you can cross-compile your application using XDS for the Renesas Gen3 board,
+which is the Gen3 board configuration.
+
+## Visual Studio Code
+
+This section presents a Visual Studio example that creates tasks
+that allow you to build an example that is based on CMake templates.
+
+Follow these steps:
+
+1. Start Visual Studio Code and open your project using the
+ following commands:
+
+ ```bash
+ cd $MY_PROJECT_DIR
+ code . &
+ ```
+
+2. Add new tasks by entering the `Ctrl+Shift+P` key combination and selecting
+ the `Tasks: Configure Task` command.
+ A list of task runner templates appears.
+
+3. Define your own tasks.
+ Following is an example that builds the
+ [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application)
+ that is based on CMake templates.
+
+ ```json
+ {
+ "version": "2.0.0",
+ "type": "shell",
+ "presentation": {
+ "reveal": "always"
+ },
+ "tasks": [
+ {
+ "label": "clean",
+ "type": "shell",
+ "command": "/bin/rm -rf ${workspaceFolder}/build/* && mkdir -p build && echo Cleanup done.",
+ "problemMatcher": []
+ },
+ {
+ "label": "pre-build",
+ "type": "shell",
+ "group": "build",
+ "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- cmake -DRSYNC_TARGET=root@renesas-gen3 -DRSYNC_PREFIX=/opt ../",
+ "problemMatcher": [
+ "$gcc"
+ ]
+ },
+ {
+ "label": "build",
+ "type": "shell",
+ "group": "build",
+ "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget",
+ "problemMatcher": [
+ "$gcc"
+ ]
+ },
+ {
+ "label": "populate",
+ "type": "shell",
+ "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget-target-install",
+ "problemMatcher": []
+ }
+ ]
+ }
+ ```
+
+4. Run a task by entering the `Ctrl+Shift+P` key combination and
+ selecting `Tasks: Run task` and then selecting the specific task.
+ For example, select `pre-build` to trigger pre-build task.
+
+5. Optionally add keybindings that trigger tasks.
+ Following is an example:
+
+ ```json
+ // Build
+ {
+ "key": "alt+f9",
+ "command": "workbench.action.tasks.runTask",
+ "args": "clean"
+ },
+ {
+ "key": "alt+f10",
+ "command": "workbench.action.tasks.runTask",
+ "args": "pre-build"
+ },
+ {
+ "key": "alt+f11",
+ "command": "workbench.action.tasks.runTask",
+ "args": "build"
+ },
+ {
+ "key": "alt+f12",
+ "command": "workbench.action.tasks.runTask",
+ "args": "populate"
+ },
+ ```
+
+ <!-- section-note -->
+ **NOTES:**
+
+ - You can find more details about Visual Source Code keybindings
+ [here](https://code.visualstudio.com/docs/editor/tasks#_binding-keyboard-shortcuts-to-tasks).
+
+ - You can find more details about Visual Source Code tasks
+ [here](https://code.visualstudio.com/docs/editor/tasks).
+ <!-- end-section-note -->
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.png
new file mode 100644
index 0000000..7784063
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.png
new file mode 100644
index 0000000..205d214
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.png
new file mode 100644
index 0000000..a61866e
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.png
new file mode 100644
index 0000000..b0a41eb
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.png
new file mode 100644
index 0000000..bcb0716
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.png
new file mode 100644
index 0000000..8b33787
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.png
new file mode 100644
index 0000000..7c4fa40
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.png
new file mode 100644
index 0000000..fa82a94
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.png
new file mode 100644
index 0000000..e551d8c
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.png
new file mode 100644
index 0000000..d5b0621
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.png
Binary files differ
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.png
new file mode 100644
index 0000000..9429246
--- /dev/null
+++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.png
Binary files differ