Third party loguru needs name mangling
One of the third party libraries included with the VTK-m source is loguru. VTK-m's own copy of the loguru is compiled and linked.
This is problematic if VTK-m is used in conjunction with another software product that also includes its own version of loguru. It opens the possibility of including different, possibly incompatible, versions of loguru. This can be solved in one of two ways:
-
Mangle the symbols to make the symbols in VTK-m unique. This typically means adding or changing the namespace. This can probably be achieved by including
loguru.hpp
andloguru.cpp
inside thevtkm
namespace. This is probably the easier option. -
Change the CMake to allow VTK-m to optionally include an external loguru rather than the one included in the thirdparty directory. This allows external software to point multiple products to the same library.
This is needed to satisfy the E4S Community Policies. It is also generally a good practice.