discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: gr-iqbal->gr-osmosdr->gqrx missing pkgconfig files break gr-3.8 buil


From: Barry Jackson
Subject: Re: gr-iqbal->gr-osmosdr->gqrx missing pkgconfig files break gr-3.8 builds
Date: Wed, 5 Feb 2020 00:05:00 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2

On 04/02/2020 07:45, Sylvain Munaut wrote:
Without a .pc in gr-iqbal, gr-osmosdr (3.8 branch) will not build as it
can't find gr-iqbal.

I just had a look at gr-osmosdr-0.1.4.127-3.mga7.src.rpm and this is
not using the official code from the gr3.8 branch of
git.osmocom.org/gr-osmosdr

True, that is from Mageia 7, the current stable release which has not and will never have anything related to gnuradio-3.8.

I am working on Mageia 8 which is under develpoment (A.K.A. Cauldron).

I have already updated to gnuradio-3.8 in Cauldron and also updated to gr-iqbal-0.38.1

The version of gr-osmosdr that I am currently working on is from the gr-3.8 branch which was taken from git as gr-osmosdr-gr3.8.zip.

The code in that repo at absolutely no point will ever look for a pkg
config file.


OK, I have re-tested the gr-osmosdr build again with the gr-iqbal.pc missing and it does now build, so that appears to be correct.

In 3.8 the modules install 3 cmake specific files :
  gnuradio-osmosdrConfig.cmake
  gnuradio-osmosdrTargets.cmake
  gnuradio-osmosdrTargets-release.cmake

β€ŽYes they are there:

β€Ž    gnuradio-osmosdrConfig.cmake

β€Žβ€Ž    gnuradio-osmosdrTargets.cmake
    gnuradio-osmosdrTargets-relwithdebinfo.cmake

and I found a patch which was causing the wrong name to be searched, so that now builds.


and these contain all the informations needed by cmake to know which
libraries to link and which include directory the add to the include
path and any dependency on other cmake modules.


OK

Theses are also automatically generated by cmake, without the need to
duplicate the information in another file.
If you look at CMakeList for iqbal for instance :

target_include_directories(gnuradio-iqbalance
     PRIVATE ${LIBOSMODSP_SEL_INCLUDE_DIRS}
     PUBLIC ${Boost_INCLUDE_DIRS}
     PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
     PUBLIC $<INSTALL_INTERFACE:include>
   )

the PRIVATE / PUBLIC / INTERFACE / ... are all specifiers for cmake to
generate those files properly and include everything needed
automatically.

If this doesn't work for you, either :
  - You're not using the right source as pointed out above ...
  - Something is broken in the gr-iqbal / gr-osmosdr CMake that makes
it not work properly ( wronge PRIVATE / PUBLIC specifier or something
omitted or something like this )
  - Something else in your setup is broken that breaks cmake's module system

In gqrx build I am now hitting a fail to find gnuradio from this line in CMakeLists.txt:

find_package(gnuradio REQUIRED COMPONENTS analog audio blocks digital filter fft)

//------------------------
CMake Error at CMakeLists.txt:120 (find_package):
By not providing "Findgnuradio.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "gnuradio",
  but CMake did not find one.

Could not find a package configuration file provided by "gnuradio" with any
  of the following names:

    gnuradioConfig.cmake
    gnuradio-config.cmake

  Add the installation prefix of "gnuradio" to CMAKE_PREFIX_PATH or set
  "gnuradio_DIR" to a directory containing one of the above files.  If
  "gnuradio" provides a separate development package or SDK, be sure it has
  been installed.
//--------------------------

All gnuradio is libified so we generate rpm packages for each library, each of which in turn produces it's own -devel rpm package containing the cmake files for that package.
There is no gnuradio.cmake or Findgnuradio-*.cmake files - no idea why.

The *Config.cmake files for example for gnuradio that I have currently installed locally are:
./gnuradio-digitalConfig.cmake
./gnuradio-vocoderConfig.cmake
./gnuradio-audioConfig.cmake
./gnuradio-qtguiConfig.cmake
./gnuradio-pmtConfig.cmake
./gnuradio-channelsConfig.cmake
./gnuradio-blocksConfig.cmake
./gnuradio-iqbalanceConfig.cmake
./gnuradio-uhdConfig.cmake
./gnuradio-dtvConfig.cmake
./gnuradio-fecConfig.cmake
./gnuradio-waveletConfig.cmake
./gnuradio-video-sdlConfig.cmake
./gnuradio-analogConfig.cmake
./gnuradio-fftConfig.cmake
./gnuradio-trellisConfig.cmake
./gnuradio-runtimeConfig.cmake
./gnuradio-zeromqConfig.cmake
./gnuradio-filterConfig.cmake

each of the above from different rpm packages.


In anycase, none of this requires pkg-config files.


OK I believe you now and thank you for your explanations :)

How can we work around the above gqrx issue?

This does not get any easier!


Cheers,

    Sylvain


Cheers,
Barry



reply via email to

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