>
> My main problem with CMake-based builds is that CMake does not pay
> attention to the specific compiler I try it to use. I have a computer with
> several versions of MSVC installed and despite using vsvars.bat for
> specific compiler it insists on using something it dug up from registry.
Thats unfortunate. When I configure a project under windows, I usually
get a drop down to select the compiler like this:
https://i.imgur.com/bXhdB4V.png
Its worked in the past, but, I dont have multiple msvc versions
installed ATM to test against.
> The same story with boost - it picked up another compiler - Visual Studio
> 2011.
You have my sympathy here. Even on linux systems the FindBoost.cmake is
a strange script. Most Find*.cmake scripts will let the user override
the specific include path and library. The Boost one likes to overwrite
all of the user's -DBoost_* flags that they pass in.
I think there is a correct magic incantation, I just remember it ATM.
>
> So I failed to even begin building GNU radio. And their requirement -
> Visual Studio 2010 - is different from yours - C++11 which I think is
> available only in Visual Studio 2013. Were you able to build GNU Radio with
> more modern compiler than 2010?
>
MSVC 2010 was just not complete enough, so theres a minimum requirement
of MSVC 2012 for the C++11 support. And MSVC 2013 C++11 support is even
more complete and should also work. FWFW, I have been building with 2012.
That said, I'm surprised to hear that GNU Radio has an issue with more
recent MSVCs than 2010. I havent built GNU Radio on windows in a while.
I guess I will give it a shot myself and see what happens.
> How extensive is the interface for device I should implement on top of
> libhackrf? I counted around 20 sensible libhackrf functions (not accounting
> for maintenance - reflashing the firmware which does not work for Windows
> anyways), trying to understand what is to implement in SoapySDR for them.
>
Just to be clear, you shouldnt have to write a soapy sdr module for hack
rf. If you tell SoapySDR's cmake configure where boost is and where
hackrf libs/headers are, it should build support through the osmo
support module. The verbose from the cmake configure will let you know
if it work.
However, if you are interested in building a Soapy SDR module for the
libhackrf (without the in-between osmo wrapper). That would be really
awesome. Essentially, you write a SoapySDR::Device class and fill in all
of the overloads with calls into libhackrf.
Some documentation here:
https://github.com/pothosware/SoapySDR/wiki#driver-api
Theres also links to some other existing drivers if you want to look at
other examples (see NovenaRF and EVB7 links under Support Modules on the
side panel):
https://github.com/pothosware/SoapySDR/wiki
And the hackrf source/sink for osmosdr is a good example of usage of the
hackrf library for this purpose:
http://cgit.osmocom.org/gr-osmosdr/tree/lib/hackrf
-josh