Build using a source code editor / IDE

First create an XDS config file or reuse the previous one, for example we use here aarch64 SDK to cross build application for a Renesas Gen3 board.

# 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 chapter will show you how to create 2 configurations, one to compile your project natively (using native GNU gcc) and one to cross-compile your project using XDS.

You can easily switch from one to other configuration using menu Run -> Set Project Configuration.

Netbeans 8.x :

  • Open menu Tools -> Options
    • Open C/C++ tab, in Build Tools sub-tab, click on Add button:

      Add new tool panel

    • Then, you should set Make Command and Debugger Command to point to xds tools:

      Add new tool panel

    • Finally click on OK button.

  • Now create we first declare project into NetBeans and create first a native configuration. To do that, open menu File -> New Project

  • Select C/C++ Project with Existing Sources ; Click on Next button

  • Specify your project directory and set Select Configuration Mode to Custom. Keep Tool Collection to Default GNU in order to create a native configuration based on native GNU GCC. Finally click on Next button.

    Select Model panel

  • Just update Run in Folder field and add build_native suffix so that resulting build files will be located into build_native sub-directory. Keep all others settings to default value and click on Next button.

    Select Model panel

  • Click several times on Next button (always keep default settings) and click on Finish button to complete creation of native configuration.

  • Now we will create a cross configuration based on XDS tools. 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.

    • in Build category, click on Manage Configurations button and then New button to add a new configuration named for example “Gen3 board”

      Select Build category

    • Click on Set Active button

    • Select Pre-Build sub-category, and set:
      • 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
    • Select Make sub-category, and set:
      • 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

      Select Make sub-category

    • Select Run sub-category, and set:
      • Run Command: target/start-on-root@renesas-gen3.sh
      • Run Directory: build-gen3

      Select Run  sub-category

    • Click on OK button to save settings

By changing configuration from Default to Gen3 board, you can now simply compile your helloworld application natively (Default configuration) or cross-compile your application through XDS for the Renesas Gen3 board (Gen3 board configuration).

Visual Studio Code

Open your project in VS Code

cd $MY_PROJECT_DIR
code . &

Add new tasks : press Ctrl+Shift+P and select the Tasks: Configure Task command and you will see a list of task runner templates.

And define your own tasks, here is an example to build helloworld-native-application AGL helloworld application based on cmake template.

{
    "version": "2.0.0",
    "type": "shell",
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        {
            "taskName": "clean",
            "command": "/bin/rm -rf ${workspaceFolder}/build/* && mkdir -p build && echo Cleanup done.",
            "problemMatcher": []
        },
        {
            "taskName": "pre-build",
            "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"
            ]
        },
        {
            "taskName": "build",
            "group": "build",
            "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget",
            "problemMatcher": [
                "$gcc"
            ]
        },
        {
            "taskName": "populate",
            "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget-target-install",
            "problemMatcher": []
        }
    ]
}

To run a task : press Ctrl+Shift+P, select the Tasks: Run task and then select for example pre-build to trigger pre-build task.

Note:

You can also add your own keybindings to trig above tasks, for example:

// 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"
},

More details about VSC keybindings here

More details about VSC tasks here

Qt Creator

Please refer to agl-hello-qml project. Thanks to Dennis for providing this useful example.

Others IDE

Coming soon…