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

2006-11-29 Thread Brandon J. Van Every

wedekind wrote:

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?
  


I spent 1 year migrating the Chicken Scheme build from GNU Autoconf to 
CMake.  I do not like things done in "odd" ways.  That said, the 
problems of Chicken were more about missing Windows support / 
consideration than about anything deliberately done in a lazy manner.  
What was there, was pretty well done.




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.
  


Ok that makes sense.  On Linux, people take all these huge stacks of 
open source libraries for granted.  On Windows, it's a nightmare, 
because the libs are not built regularly on Windows and tend to break.  
The best defenses of that are to (1) minimize external dependencies, (2) 
keep one's own version of the library in the source tree, either 
building it or using a canonical binary.




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


Well, even doing the above, there's the question of whether you feel 
these compatibility issues should get resolved.  That is, do you want 
more open source support burdens for yourself?  You could make the bug 
reports to Qt, the reproducers, the test scripts, etc.  In the long run, 
it might solve your build compatibility problems.  In the short run, it 
is always a waste of your time.  I'm pretty guarded about what projects 
I'll do that for nowadays.  Really, only CMake.


Even with CMake, I got lazy / desperately busy and didn't actually check 
whether all the good bugfixes they gave me for 2.4.4 beta were actually 
working.  I just trusted that the Kitware guys had tested the stuff 
decently before committing it to CVS.  They did, so when 2.4.4 shipped, 
I implemented all the new feature stuff, bumped the required version to 
2.4.4, and didn't bother with backwards compatibility at all.  It's a 
PITA writing if..else..endif to support multiple versions, especially 
when you're just working around old bugs that got fixed.  I could have 
done that early, during the beta, if I wanted to "smoothly pave the way" 
for the future.  But as it turned out, I certainly didn't have the 
time.  Even when I finally did the fixes, I just sorta threw them over 
the fence and hoped they worked, with only minimal testing before I 
committed them.  Nobody complained though.


I think, in open source, when you're making $0 from it, eventually you 
cut corners.  Too expensive to offer industrial grade migrations, where 
nobody ever sees a hiccup.


Which suggests another method: can you draft other people into doing the 
build testing / bug reporting for the Qt mishaps, so that the Qt people 
are properly pestered and the FIND problems get resolved?  In that 
school of thought, you leave some bugs available so that people will do 
something about them.  This requires an audience with a vested interest 
in having your stuff work, though.  No good if it's a personal project 
that no one else uses.



Cheers,
Brandon Van Every

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

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

2006-11-29 Thread wedekind
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


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


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

2006-11-29 Thread wedekind
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


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


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

2006-11-28 Thread Brandon J. Van Every

wedekind wrote:

Hello Bill,

  

The Find should be used all the time, because someone might install qt
in a different place, and you
want that to work.  If you hard code the place in the CMakeLists.txt it
will only work on some systems.



Of course, you are right to advise me to use FIND. But I am not using CMake
to distribute source-packages of my software. I only use CMake to build the
software "locally" and to create binary distribution packages from these
builds. So I can control the directory where to find the qt-lib for
building. The user of the binary package needs to make the qt-lib detectable
by the application or use the qt-lib distributed with the software.
  


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.



Cheers,
Brandon Van Every

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

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

2006-11-28 Thread wedekind
Hello Bill,

>The Find should be used all the time, because someone might install qt
>in a different place, and you
>want that to work.  If you hard code the place in the CMakeLists.txt it
>will only work on some systems.

Of course, you are right to advise me to use FIND. But I am not using CMake
to distribute source-packages of my software. I only use CMake to build the
software "locally" and to create binary distribution packages from these
builds. So I can control the directory where to find the qt-lib for
building. The user of the binary package needs to make the qt-lib detectable
by the application or use the qt-lib distributed with the software.

Cheers

Marco


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


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

2006-11-24 Thread Bill Hoffman

wedekind wrote:

Hello Bill,

  

Yes, it should be correct, and will be for 2.4.5  (which maybe coming
sooner than later... :-( )
I am not quite sure why you would add it by hand if it does not
exist...



Well, I need this lib, the debug version of the qt-lib, only sometimes. I
did not have installed it yet, but I have been using a CMakeLists.txt from
another platform that required it. Since I was about to only build the
release version of my system, I simply did not care about the missing
debug-lib... Maybe I should use the FIND-commands of CMake to avoid always
linking to this lib, even it is not present. But it is such a fundamental
lib, that it should always be there and I am so lazy... ;)
  
The Find should be used all the time, because someone might install qt 
in a different place, and you
want that to work.  If you hard code the place in the CMakeLists.txt it 
will only work on some systems.


-Bill

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


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

2006-11-24 Thread wedekind
Hello Bill,

>Yes, it should be correct, and will be for 2.4.5  (which maybe coming
>sooner than later... :-( )
>I am not quite sure why you would add it by hand if it does not
>exist...

Well, I need this lib, the debug version of the qt-lib, only sometimes. I
did not have installed it yet, but I have been using a CMakeLists.txt from
another platform that required it. Since I was about to only build the
release version of my system, I simply did not care about the missing
debug-lib... Maybe I should use the FIND-commands of CMake to avoid always
linking to this lib, even it is not present. But it is such a fundamental
lib, that it should always be there and I am so lazy... ;)

Cheers

Marco



___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake