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 _______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
