On Tue, Jan 13, 2009 at 11:16 AM, Chris Cannam <[email protected]> wrote: > Now I _can_ confirm your findings! Investigating...
OK, it's simple enough. The CMake build compiles data.cpp to data.o, then rolls that up into a static library archive (libRosegarden_rc_data.a) and adds that to the link line. However, symbols from a static library are only pulled in to the resulting executable if they were undefined at the point where the static library appeared on the link line. Since none of the Rosegarden code actually refers to the resource data (it's referred to only from subsequent Qt libraries), the linker does nothing with this static library and so the data is not included in the executable. The solution is simply to link with data.o rather than rolling it into an archive. How to accomplish that with CMake, I don't know. If that isn't possible, we can work up a hack that means we don't need to link explicitly against it, e.g. by including data.cpp into another file (it would have to be a file that also contains something that is referred to from elsewhere, etc, so that we don't just run into the same problem again). That would be a bit weird, though -- I'd prefer it if we could get CMake to do it right. We're going to have to get it to run the rcc _somehow_ as well, since I don't want to be effectively distributing all the data twice by including data.cpp in our tarball. Chris ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Rosegarden-devel mailing list [email protected] - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
