Hi Federico,

On 22/11/2021 22.13, Federico 'Larroca' La Rocca wrote:
> Hi everyone,
> 
> I'm currently porting an OOT module to 3.8 and stumbled into a weird
> situation regarding the .so files that are installed on
> /usr/local/lib/x86_64-linux-gnu/. If I understood correctly, there are
> three files that are created there (files reflect my OOT's name):
> libgnuradio-isdbt.so, libgnuradio-isdbt.so.1.0.0git and
> libgnuradio-isdbt.so.XXX (where XXX is related to the commit's short id;
> for instance now I have libgnuradio-isdbt.so.17e304df). 

To suppress the version with commit's short id you need to set VERSION_PATCH to 
0 in the top-level CMakeLists.txt. See also [1] and [2]
 
> The question I have is then: why was the second symbolic link pointing to
> an older version of the .so file? Maybe someone can point me to the cmake
> file that creates and copies these files.

The symlinks are created by cmake and then the files are just copied when 
installing. You can get the exact command by executing `make VERBOSE=1`. Here 
is an example

$ make VERBOSE=1 | grep cmake_symlink_library
cd /home/user/src/gr-oot/build/lib && /usr/bin/cmake -E cmake_symlink_library 
libgroot.so.v0.0.1-1-g2de47e28 libgroot.so.1.0.0git libgroot.so

$ make install | grep libgroot.*so
-- Installing: /usr/local/lib64/libgroot.so.v0.0.1-1-g2de47e28
-- Installing: /usr/local/lib64/libgroot.so.1.0.0git
-- Set runtime path of "/usr/local/lib64/libgroot.so.v0.0.1-1-g2de47e28" to ""
-- Installing: /usr/local/lib64/libgroot.so

I suspect that if you want to debug this then you need to look in 
cmMakefileLibraryTargetGenerator.cxx [3] and GrMiscUtils.cmake [4]

[1] https://github.com/gnuradio/gnuradio/commit/896b7138bc0
[2] https://github.com/gnuradio/gnuradio/pull/4854
[3] 
https://gitlab.kitware.com/cmake/cmake/-/blob/master/Source/cmMakefileLibraryTargetGenerator.cxx#L913-916
[4] 
https://github.com/gnuradio/gnuradio/blob/master/cmake/Modules/GrMiscUtils.cmake#L52-L69

Regards,
Vasil

Reply via email to