Developers Documentation

From Ghpsdr3 SDR project
Revision as of 17:04, 2 September 2012 by Iw0hdv (Talk | contribs) (Installing from the ppa)

Jump to: navigation, search

Most of the development discussion has been taking place on the sdr-widget google group.


Installing portaudio19-dev with jackd2

Portaudio19-dev depends on having a copy of libjack-dev installed and if the libkjack-jackd2-dev package is installed before portaudio19-dev it's dependency will be satisfied and it will not uninstall jackd2 and install jackd1 if you have already installed jackd2 on your system.

If jackd1 and portaudio19-dev already installed

From Synaptic

Uninstall portaudio19-dev
Uninstall jackd1
Install Jackd2
Install libjack-jackd2-dev
Install portaudio19-dev

If you are starting from scratch

From Synaptic
git clone https://github.com/alexlee188/ghpsdr3-alex.git
Install Jackd2
Install libjack-jackd2-dev
Install portaudio19-dev


The following command install all the environment needed:

sudo jackd2 libjack-jackd2-dev portaudio19-dev

sudo apt-get install make gcc g++ autoconf automake autotools-dev libtool git subversion
sudo apt-get install libusb-0.1-4 libusb-dev libfftw3-dev libpulse-dev libsamplerate0-dev 
sudo apt-get install libusb-1.0-0-dev libconfig8-dev xdg-utils libortp-dev
sudo apt-get install libevent-dev

If the machine doesn't have an OpenGL aware video card, please install also the following packages:

sudo apt-get install mesa-utils
sudo apt-get install mesa-common-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install x11proto-xext-dev
sudo apt-get install libxrender-dev

Installing Qt5

You need to add the unsupported packages to your system. It will exist as a stand alone system separate from any other version of qt or creator etc. that you may have installed.

Adding the qt5 “Canonical Qt5 Edgers” ppa to your system

In a terminal, copy and paste ...

sudo add-apt-repository ppa:canonical-qt5-edgers/qt5-daily

Your system will now fetch the PPA's key. This enables your Ubuntu system to verify that the packages in the PPA have not been interfered with since they were built.

Now, as a one-off, you should tell your system to pull down the latest list of software from each archive it knows about, including the PPA you just added:

sudo apt-get update

Now you're ready to start installing software from the PPA!

Installing from the ppa

You will be installing the packages from the daily build of qt5 and the version date etc. could change but it is important to check that you have marked for install the package corresponding to the qt5 build as some of the packages may also be installed for qt 4.8.x A good check is to open the url for the Edgers and compare your selection to their file list at canonical-qt5-edgers

The packages will be identified with similar to

  5.0-2012xxx ubuntu5 Zoltan Balogh (2012-04-05)

I have shown the example on the first entry in the list only.

Open Synaptic and use the quick find to look for and mark for install each of the packages in the following list ...

 qt-components-qtquick2     5.0-2012xxx ubuntu5 Zoltan Balogh (2012-04-05)
 qt3d
 qtbase
 qtdeclarative
 qtdoc
 qtjsbackend
 qtmultimedia
 qtquick1
 qtscript
 qtsvg
 qttools
 qtwebkit
 qtxmlpatterns

These packages will install by default in /opt/qt5

note: there are a couple of packages which you do not need to install.

If you are using the command line, the related command are shown below for convenience:

sudo apt-get install qt-components-qtquick2 qt3d qtbase
sudo apt-get install qtbase qtdeclarative qtdoc  qtjsbackend  qtmultimedia  qtquick1
sudo apt-get install qtscript qtsvg qttools  qtwebkit qtxmlpatterns
sudo apt-get install qtmobility-dev
sudo apt-get install qt-components-qtquick2 qt3d
sudo apt-get install qtxmlpatterns qtwebkit qttools qtsvg qtscript
sudo apt-get install qtquick1 qtmultimedia qtjsbackend qtdoc qtdeclarative

Setting the path to qt5

From a terminal

$ export PATH=/opt/qt5/bin:$PATH

Compiling QtRadio

$ cd to the location of ghpsdr3-alex

$ sh cleanup
$ autoreconf -i
$ ./configure CFLAGS='-fopenmp -O3 -msse3' CXXFLAGS='-fopenmp -O3 -msse3'
(for those of us with older machines use the line below instead)
$ ./configure CXXFLAGS='-O3 -msse2 -fopenmp'
$ make
$ sudo make install

Setting QtCreator to use the qt5 libraries

If you want to use Qt Creator (you use the same Qt Creator as with Qt4), you need to configure it to use Qt5 as one of the options:

From the top line menu of QtCreator ...

Tools > Options > Build & Run
Click on the Qt Versions panel
Click on Add button
Navigate to /opt/qt5/bin
Click on qmake
Click on open
Click on Apply then OK

You need to point to the qmake file which is found in /opt/qt5/bin

Choosing the build library in QtCreator

you need to (re)import your QtRadio project and then you will be able to select Qt5 (or the previous Qt4.8 etc.) for building the application.

It may be necessary to edit the project file (QtRadio.pro) to choose which version of Qt Creator you are using which can be the SDK directly from Nokia, or the Ubuntu install of Creator. The line "_UsingSDK" needs to be set to true or false as appropriate.