discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: Trying to compile gr-osmosdr on windows


From: Ryan Volz
Subject: Re: Trying to compile gr-osmosdr on windows
Date: Tue, 26 Apr 2022 13:59:55 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Hi Mitja,

On 4/26/22 11:52 AM, Mitja kocjančič wrote:
Hello there, I finaly decided to upgrade to GNURadio 3.9 and decided to build everything from source because precompiled versions outthere didn't include everything I needed

I knew there would be pain, I just didn't knew how much til I started tinkering with it

I commend the effort, and now that you know the pain I hope to convert you to the conda way of life :)


...

even gnuradio builds fine
this is how I built it (incase it matters)

cmake ../ -G "Visual Studio 16 2019" -Wno-dev ^
         -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ^
         -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} ^
         -DLOG4CPP_INCLUDE_DIR=${CMAKE_INSTALL_PREFIX}/include ^
         -DLOG4CPP_LIBRARY=${CMAKE_INSTALL_PREFIX}/lib/log4cpp.lib ^
         -DMPIR_INCLUDE_DIR=${MPIR_INCLUDE_DIR} ^
         -DMPIR_LIBRARY=${MPIR_LIBRARY} ^
         -DMPIRXX_LIBRARY=${MPIRXX_LIBRARY} ^
         -DENABLE_INTERNAL_VOLK=OFF ^
         -DBOOST_ROOT=${BOOST_ROOT} ^
         -DBOOST_LIBRARYDIR=${BOOST_LIBRARYDIR} ^
         -DBOOST_ALL_DYN_LINK=TRUE ^
         -DPYTHON_EXECUTABLE=${PYTHON3_EXECUTABLE} ^
         -DPYTHON_INCLUDE_DIR=${PYTHON3_INCLUDE_DIR} ^
         -DPYTHON_LIBRARY=${PYTHON3_LIBRARY} ^
         -DGR_PYTHON_DIR=${PYTHON3_INSTALL_DIR} ^
         -DFFTW3f_INCLUDE_DIRS=${FFTW3F_INCLUDE_DIRS} ^
         -DFFTW3f_LIBRARIES=${FFTW3F_LIBRARIES} ^
         -DUHD_INCLUDE_DIRS=${UHD_INCLUDE_DIRS} ^
         -DUHD_LIBRARIES=${UHD_LIBRARIES} ^
         -DENABLE_TESTING=ON ^
         -DCPPUNIT_INCLUDE_DIRS=${CPPUNIT_INCLUDE_DIRS} ^
         -DCPPUNIT_LIBRARIES=${CPPUNIT_LIBRARIES} ^
         -DENABLE_PYTHON=ON ^
         -DPORTAUDIO_INCLUDE_DIRS=${PORTAUDIO_INCLUDE_DIR} ^
         -DPORTAUDIO_LIBRARIES=${PORTAUDIO_LIBRARY} ^
         -DZEROMQ_INCLUDE_DIRS=${ZEROMQ_INCLUDE_DIRS} ^
         -DZEROMQ_LIBRARIES=${ZEROMQ_LIBRARIES} ^
         -DGSL_INCLUDE_DIRS=${GSL_INCLUDE_DIRS} ^
         -DGSL_LIBRARY=${GSL_LIBRARY} ^
         -DGSL_CBLAS_LIBRARY=${GSL_CBLAS_LIBRARY} ^
         -DENABLE_GR_QTGUI=ON ^
         -DCMAKE_PREFIX_PATH=${QT5_ROOT} ^
         -DQWT_INCLUDE_DIRS=${QWT_INCLUDE_DIR} ^
         -DQWT_LIBRARIES=${QWT_LIBRARY} ^
         -DENABLE_GRC=ON


What might be helpful is if you could note the components that are enabled/disabled after running CMake for GNU Radio.


this was all going great, but then it was GROsmoSDR part ....
I clone master branch off their git: git://git.osmocom.org/gr-osmosdr <http://git.osmocom.org/gr-osmosdr>

started to build
cmake ../ -G "Visual Studio 16 2019" ^
         -Wno-dev
         -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ^
         -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} ^
         -DLOG4CPP_INCLUDE_DIR=${CMAKE_INSTALL_PREFIX}/include ^
         -DLOG4CPP_LIBRARY=${CMAKE_INSTALL_PREFIX}/lib/log4cpp.lib ^
         -DMPIR_INCLUDE_DIR=${MPIR_INCLUDE_DIR} ^
         -DMPIR_LIBRARY=${MPIR_LIBRARY} ^
         -DMPIRXX_LIBRARY=${MPIRXX_LIBRARY} ^
         -DFFTW3f_INCLUDE_DIRS=${FFTW3F_INCLUDE_DIRS} ^
         -DFFTW3f_LIBRARIES=${FFTW3F_LIBRARIES} ^
         -DUHD_INCLUDE_DIRS=${UHD_INCLUDE_DIRS} ^
         -DUHD_LIBRARIES=${UHD_LIBRARIES} ^
         -DBOOST_ROOT=${BOOST_ROOT} ^
         -DBOOST_LIBRARYDIR=${BOOST_LIBRARYDIR} ^
         -DBOOST_ALL_DYN_LINK=TRUE ^
         -DPYTHON_EXECUTABLE=${PYTHON3_EXECUTABLE} ^
         -DPYTHON_INCLUDE_DIR=${PYTHON3_INCLUDE_DIR} ^
         -DPYTHON_LIBRARY=${PYTHON3_LIBRARY} ^
         -DGR_PYTHON_DIR=${PYTHON3_INSTALL_DIR} ^
         -DENABLE_RFSPACE=OFF ^
         -DENABLE_REDPITAYA=OFF

BTW: -DCMAKE_BUILD_TYPE=RelWithDebInfo

and then it went donwhill :(
that's what the error looks like: https://user-images.githubusercontent.com/6347325/161424913-e10c0ee7-8901-49e4-a093-b34c39e68053.png <https://user-images.githubusercontent.com/6347325/161424913-e10c0ee7-8901-49e4-a093-b34c39e68053.png>

it seams it wants BindingGenerator from GNURadio.bindtool

but I checked there is nothing like that anywhere on my system (I checked where gr python binding normaly reside CMAKE_INSTALL_PREFIX\lib\python3.9\site-packages\gnuradio\gr

CMAKE_INSTALL_PREFIX can be different for everyone in my case its C:\GnuRadio

now What is GNURadio.bindtool and where can I find it?

It's a component of the gr-utils portion of the main GNU Radio build, so I'd suggest checking to see that you built that (seems not). I think it would be easy to miss a dependency here and not end up with the bindtool.

That said, I'm not entirely sure why the build is trying to run bind_oot_file.py as that is more of a developer activity and I don't think it's something that happens in my builds. I do know that I don't install pygccxml, and perhaps if you do have that dependency available then it might be triggering this when I wouldn't see it.


It seams people managed to build GROsmoSDR on windows with GNURadio 3.9 awhile ago: https://osmocom.org/issues/5021 <https://osmocom.org/issues/5021> because there is GRConda, official gnuradio prebuild installer and even Pothos one

so I have to be doing something wrong, I hope someone has any idea how to fix my gnuradio problems :)

These are the things I see you doing differently than my conda builds:

- Using the Visual Studio generator with CMake (I'm using Ninja)
- You're building gr-osmosdr from the latest git (I'm starting from the 0.2.3 tag with the three patches you can find here: https://github.com/conda-forge/gnuradio-osmosdr-feedstock/tree/main/recipe)
- Possibly having pygccxml installed, see above (I don't)


and I cannot use prebuilt binaries because they don't include what GNURadio 3.7 does (

gr-nrsc5: https://github.com/argilo/gr-nrsc5 <https://github.com/argilo/gr-nrsc5> gr-zeromq (built-in now IIRC): https://github.com/gnuradio/gnuradio/tree/master/gr-zeromq <https://github.com/gnuradio/gnuradio/tree/master/gr-zeromq> gr-drm: https://github.com/kit-cel/gr-drm <https://github.com/kit-cel/gr-drm> (hmm is this built-in??) gr-dvbt/t2: https://github.com/BogdanDIA/gr-dvbt <https://github.com/BogdanDIA/gr-dvbt> (if reading this correctly, it built in now under gr-dtv) gr-dvbs2: https://github.com/drmpeg/gr-dvbs2 <https://github.com/drmpeg/gr-dvbs2> (most build-in this works with 3.9)

)
so to bring my 3.9 install to a state 3.7 is in right now I would need a built enviroment at some point anyway, so why not start early :)

Thanks for reading this long post, I hope I didn't confuse to much people

It seems like most of what you want is something that I have already built with conda and included in radioconda. Not to discourage you from building everything from scratch if that's really what you want, but I'm willing to help you get the things you're missing built with conda so that they become available for everyone. (I'm hoping that by building out the base, other people like yourself might be motivated to add onto it!) It looks like for 3.9/3.10, you're only missing gr-nrsc5 and gr-dvbs2? I'm not sure if gr-drm and gr-dvbt/t2 are now built in, so maybe those too. If you're interested, the place to start is building from source but depending on the conda packages:

https://wiki.gnuradio.org/index.php/CondaInstall#Building_GNU_Radio_from_source_within_a_conda_environment

An alternative is to write a conda recipe, for which there is now a template available with some instructions:

https://github.com/gnuradio/gnuradio/tree/main/gr-utils/modtool/templates/gr-newmod/.conda

I will also see what I can do for gr-nrsc5 and gr-dvbs2 myself, when I get some spare time for GNU Radio things. If you do decide to go down the conda path, don't hesitate to reach out to me for help!

Cheers,
Ryan



reply via email to

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