Joshua L. Blocher wrote:
If you have time I would love help figuring why the link failure happens.
The current approach is to build a library for each source directory. However, since the dependencies between code in different directories are not clearly defined and there are some circular ones, this leads to simple changes breaking the build, because Unix linkers don't resolve backward references in static libraries, only in object files. What needs to be done: instead of building libraries, directly link the executable from all object files. Only build static libraries from things that are really libraries and are usable outside of Inkscape.
Ok the big issue here is this is not possible for most windows devs without downloading an additional version of svn i.e the command line tools as most windows devs use tortoiseSVN, and it does not contain the command line executable. I'm not against better version info, but doing this breaks the build for non-*nix users. So we need a way to do this on all platforms.dd
For the CMake build this changes what is basically an echo to file to something much more complex.
When it comes to the Windows build, I reused the existing rule that generated inkscape_version.h and just changed it to generate inkscape-version.cpp instead, so everything should still work. I couldn't test it though. For CMake, it is 100% implementable, because this is equivalent to the thing being done in UseGlibMarshal.cmake.
Regards, Krzysztof Kosiński