discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] CMake progress announcement


From: Josh Blum
Subject: [Discuss-gnuradio] CMake progress announcement
Date: Tue, 02 Aug 2011 14:48:47 -0700
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11

Hey list,

There has been a lot of progress since my last announcement on this
topic. For those not following, the goal is to use cmake to generate a
build environment for gnuradio. Also I would like to use cpack to
generate rpms, debs, exes, dmgs, etc...

----------------------------------------------------------------------
-- Source code and build guide
----------------------------------------------------------------------
Everything can be found on this gnuradio wiki page:
http://gnuradio.org/redmine/projects/gnuradio/wiki/CMakeWork

All of the source code is hosted on the next branch of my jblum.git
repo. If you plan to switch branches from an existing checkout, please
git clean -dfx before building. This is because the cmake build system
generates files out-of-tree and it will pick up old header files that
were generated in-tree. This will result in compilation errors.

Note: The costas loop unit test will fail. This has been fixed w/
Rondeau's gr-digital work which is pulled into this branch:
http://gnuradio.org/cgit/jblum.git/log/?h=digital

----------------------------------------------------------------------
-- Supported gnuradio components
----------------------------------------------------------------------
The components listed below are supported in the cmake build system. I
have tested that the components build under gcc linux, gcc macosx, and
msvc windows. A few exceptions: gr-comedi is linux only, and the
reed-solomon code in gnuradio core needs work to build under msvc. This
is also preventing gr-atsc which depends on rs.h

The following cut and paste from the configuration verbose:

--   * python-support
--   * testing-support
--   * volk
--   * gruel
--   * gnuradio-core
--   * gnuradio-companion
--   * doxygen
--   * gr-atsc
--   * gr-audio
--   * gr-comedi
--   * gr-digital
--   * gr-noaa
--   * gr-pager
--   * gr-qtgui
--   * gr-trellis
--   * gr-uhd
--   * gr-video-sdl
--   * gr-vocoder
--   * gr-wxgui

----------------------------------------------------------------------
-- Windows and WXGUI
----------------------------------------------------------------------
The wx widgets and the non-GL sinks appear to work perfectly fine under
windows. So, I installed PyOpenGL to test our wx gui GL sinks...

I ran the wxgui GL FFT plotter, the widget came up and it appears to be
partially working. The plotter axis lines were displayed, but I didnt
see any blue FFT traces. Also the application didn't close without ctrl+C.

Perhaps someone interested can experiment with the GL sinks and figure
out the problem. I bet its something simple...

----------------------------------------------------------------------
-- Windows installer
----------------------------------------------------------------------
I build a more recent windows installer for gnuradio that has the
components mentioned above. The documentation for how to get that up and
running is still on my website:
http://www.joshknows.com/gnuradio_port

----------------------------------------------------------------------
-- Cross compiling gnuradio
----------------------------------------------------------------------
Balister has confirmed that the cmake branch can build cross for arm,
with the exceptions of gr-atsc and gr-vocoder components. This is
because those components rely on executables generated during the build
to generate source files.

Basically, the solution suggested by cmake is to import the executables
from a native build (in this case from an x86 build), and use those to
generate the source files for the cross build.

The technique is documented here:
http://www.vtk.org/Wiki/CMake_Cross_Compiling#Using_executables_in_the_build_created_during_the_build

And a potential solution here:
http://gnuradio.org/cgit/jblum.git/commit/?id=92bd753784d24cfc6e8e18a4641159c850f86c91

----------------------------------------------------------------------
-- Generating debian packages
----------------------------------------------------------------------
So CPack can build installer packages like debs, rpms, exes, dmgs... The
exe and dmg installers are component-based. So every gnuradio component
gets its own little checkbox in a tree and you can choose which
components to install.

Now the deb and rpm packages are monolithic. Meaning, CPack only knows
how to generate one big package for the whole tree. However, it would be
nice to generate multiple packages for each component. As it turns out
this isnt too hard. It is possible to configure CPack to build each
component into a different directory, and easily script something to
turn each directory into a deb or rpm package.

The relevant work is here, I still need to get the naming conventions
correct and other misc details:
http://gnuradio.org/cgit/jblum.git/log/?h=multi_deb

----------------------------------------------------------------------

I welcome testers, bug reports and feedback. :-)

-Josh



reply via email to

[Prev in Thread] Current Thread [Next in Thread]