You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GNSS-SDR links to gnuradio-blocks, and consuming the existing gnuradio::gnuradio-blocks CMake target requires the downstream library (GNSS-SDR) to link against libsndfile and thus have it as a dependency. This shouldn't be the case, because the use of libsndfile is (as far as I can tell) limited to the internal implementation and headers of the WAV source/sink and is not required to consume any public GNU Radio headers.
The fix would be to move sndfile::sndfile from the PUBLIC to PRIVATE link section for the CMake target: https://github.com/gnuradio/gnuradio/blob/main/gr-blocks/lib/CMakeLists.txt#L184-L199. Doing so would not effect the compilation of GNU Radio itself, so testing of the fix would have to involve re-building the changed GR and ensuring that something linking against gnuradio-blocks does not need the sndfile headers available.
System Information
Ubuntu, but applies to all.
GNU Radio Version
3.10 (maint-3.10)
Specific Version
3.10.3.0
Steps to Reproduce the Problem
Link against gnuradio-blocks using the gnuradio::gnuradio-blocks CMake target.
Relevant log output
No response
The text was updated successfully, but these errors were encountered:
First observed on Ubuntu 22.04 / GNU Radio 3.10.1
Also present on Fedora rawhide / GNU Radio 3.10.3
Minimizing external linkage is great, but if the linkage is actually required, then the gnuradio packages should depend on their distro-specific sources (libsndfile1-dev for Ubuntu; libsndfile-devel for Fedora).
What happened?
GNSS-SDR links to gnuradio-blocks, and consuming the existing
gnuradio::gnuradio-blocksCMake target requires the downstream library (GNSS-SDR) to link against libsndfile and thus have it as a dependency. This shouldn't be the case, because the use of libsndfile is (as far as I can tell) limited to the internal implementation and headers of the WAV source/sink and is not required to consume any public GNU Radio headers.The fix would be to move
sndfile::sndfilefrom thePUBLICtoPRIVATElink section for the CMake target: https://github.com/gnuradio/gnuradio/blob/main/gr-blocks/lib/CMakeLists.txt#L184-L199. Doing so would not effect the compilation of GNU Radio itself, so testing of the fix would have to involve re-building the changed GR and ensuring that something linking against gnuradio-blocks does not need the sndfile headers available.System Information
Ubuntu, but applies to all.
GNU Radio Version
3.10 (maint-3.10)
Specific Version
3.10.3.0
Steps to Reproduce the Problem
Link against gnuradio-blocks using the
gnuradio::gnuradio-blocksCMake target.Relevant log output
No response
The text was updated successfully, but these errors were encountered: