Track shared library dependencies?
It seems that when I run touch
on a shared library in /usr/lib that my CMake project depends on, the link step is not rerun. Looking at the ninja deps output, I don't see any ".so" files. I assume these aren't tracked for good reasons but I can't seem to find any discussion about this. I guess CMake doesn't know exactly which ".so" file ld is going to link against?
Without shared library tracking in place, I'm a bit confused on how an ExternalProject superbuild would ever work correctly. If I make changes to a dependent project in the superbuild that don't touch any header files (so only the ".so" has an updated timestamp), wouldn't that mean we risk ABI issues? Or will every ABI change be reflected in the corresponding header files of the library which are tracked by CMake (Ninja)?