WG: AW: AW: [CMake] AW: Wrong interpretation of "optimized" and "debug" Qt-libs in TARGET_LINK_LIBRARIES

wedekind wedekind at caesar.de
Wed Nov 29 12:53:10 EST 2006


Hello Brandon,

thanks for your input.

> So you are the only person who ever builds your software?  If other people
> have to build your stuff, you're making it a PITA for them, having to
> remember precisely what Qt directory to use.  All this knowledge is locked

> up in your head, or in your docs, which nobody wants to read for such a
> trivial issue.  If you ever pass the baton of maintenance on to someone
> else, people are not going to thank you.

:) I guess you already had the joy of taking over some maintenance scripts
from anyone else?

Without knowing my own "build infrastructure" I'd say: You're right,
hard-coded/inflexible build scripts are a PITA. But in my case I had to
weigh up flexibility against stability. I am using a set of libs, like Qt,
DCMTK, etc. on every platform I'm building my software on. And I had to
learn that there are subtle differences e.g. between different editions of
Qt. It may be the qt-lib version 3.3.5 I need to load at runtime, but is it
the open-source or the commercial edition? Since I am using the commercial
edition of qt, every linux I want to build my software on almost certainly
delivers the open-source-edition. The software does not even built (or runs)
with the wrong edition. The other libs I'm linking against partly needed to
be fixed or built in a special way.

The point is: I need a trusted set of libs to link against, so flexibly
looking for _any_ version/edition of a needed lib won't do.

My solution was to have a fixed dir-structure that holds all needed libs and
which is the same on every platform. So I only need to install this
"lib-dir" on a fresh build-machine along with the build scripts and can
start to build.

If I remember correctly Bill Hoffman doesn't like environment variables very
much. I think I have fixed the location of my needed libs for the same
reason.

Does that make sense to you? Can you think of a better solution?

Cheers

Marco




More information about the CMake mailing list