Skip to content
This repository was archived by the owner on Jan 28, 2022. It is now read-only.

developer qt_ide

Markus Zehnder edited this page Dec 6, 2019 · 15 revisions

This topic is currently being created and worked on!

The development of the YIO Remote software doesn't require a physical YIO Remote or a Raspberry Pi! The software also runs on Linux, macOS and Windows desktops :-) Of course certain low level functionality won't work, but otherwise it's fully functional including integrations. It's a great way to try out the software and developing new features without the crosscompile and device deployment overhead.

The software of the remote is written in Qt C++ and QML with Qt Creator.

The build environment consists of the following parts:

Requirements

For desktop development only (without cross compilation):

  • Supported Linux, macOS or Windows PC with admin / root privileges.
    • See supported platforms.
    • At the moment the YIO remote software is actively developed on Linux, macOS and Windows.
      Other platforms are neither tested nor currently supported in the qmake configuration. Please feel free to add other platforms!
  • Internet connection for the Qt installer and to download the YIO projects.
  • Recommended: Git client

For Buildroot cross compilation:

  • A Linux box or VM, otherwise Docker Desktop.
  • At least 20 GB of free space. A SSD is highly recommended.
  • At least 4 GB RAM. More RAM = better file system caching.
  • Fast CPU. More cores = quicker build times.
  • Internet connection: packages will be downloaded during the build.

See Developer VM Setup on how to setup an Ubuntu Linux VM for development.

Installing Qt

In order to get the code running on your machine you need to download and install the Qt open source license edition for Windows, Mac or Linux. The YIO Remote software is written for Qt 5.12 which is the runtime on the RPi Zero. Therefore it's recommended to use the current 5.12.x release for development. Newer releases should work as long as no new features are being used.

The required Qt components and other OS specific pre-requisits are listed below. The Developer and Designer Tools are preselected and are required if you want the Qt Creator IDE.

In case you need to add, remove or change components post-install, start the MaintenanceTool application in the root of the Install directory (C:\Qt or ~/Qt by default).

Linux

Please use the downloaded Qt installer and not an available version from your Linux distribution. This avoids confusion caused by different Qt versions and developer tools. Each version of a Linux distribution usually comes with a different Qt version. If you download and install Qt for yourself you can independently update the OS and the Qt environment.

The core developers are using Ubuntu desktop x64 (18.04 and 19.10). Other distros should work as well as long as they are supported.

Required Qt components:

  • Desktop gcc 64-bit
  • Sources
  • Qt Virtual Keyboard
  • Qt Network Authorization

macOS

XCode is required and must be installed to use Qt Creator on macOS. It should be launched at least once to complete initialization and to install the command line developer tools.

Required Qt components:

  • macOS
  • Sources
  • Qt Virtual Keyboard
  • Optional: iOS if you wish to run it on your Apple mobile device too (experimental & no priority at the moment)

The configuration of a Raspberry Pi cross compilation toolchain with Buildroot has been abandoned. It seems possible but very complicated. Please contact us if you have a working solution!
Use the Docker image for cross compilation and image creation. See Setup Buildroot.

Windows 10

Required Qt components:

  • All MSVC entries
  • MinGW 7.3.0 64-bit
  • Sources
  • Qt Virtual Keyboard
  • Qt Debug Information Files

The configuration of a Raspberry Pi cross compilation toolchain with Buildroot has not been looked at. Please contact us if you have a working solution!
Use the Docker image for cross compilation and image creation. See Setup Buildroot.

Qt Creator IDE

Project Organization and Checkout

TODO

qmake Environment Variables

TODO

Qt Creator Configuration

TODO

Cross Compilation for RPi Zero

Define Build Kit

Device Deployment

Remote Debugging

Clone this wiki locally