On Fri, May 8, 2009 at 12:07 PM, Clinton Stimpson <clin...@elemtech.com> wrote:
> Alan W. Irwin wrote:
>>
>> On 2009-05-07 22:45+0200 Christian Ehrlicher wrote:
>>
>>> Alan W. Irwin schrieb:
>>>>
>>>> I have just discovered that for -DCMAKE_BUILD_TYPE=Debug, the
>>>> combination of
>>>> FindQt4.cmake and UseQt4.cmake inserts the keywords debug, optimized,
>>>> AND
>>>> general into the QT_LIBRARIES list to divide the list into three
>>>> sections.
>>>> But only the debug section of that list is used by target_link_libraries
>>>> for
>>>> the -DCMAKE_BUILD_TYPE=Debug case.
>>>>
>>>> Could we have a cleaner design that doesn't specify the
>>>> target_link_libraries keywords and which simply returns in QT_LIBRARIES
>>>> whatever is relevant for the CMAKE_BUILD_TYPE that is specified?
>>>>
>>
>>
>>> CMAKE_BUILD_TYPE is not set for MSVC and other IDE generators so this
>>> will not work.
>>
>> I thought that was a good argument at first, but when I looked deeper it
>> turns out not to be relevant to this particular case since the setting of
>> the debug and optimized keywords in FindQt4.cmake occurs inside a
>>
>> IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
>>
>> logic block.
>>
>>
>>> This would also mean that you can't change the buildtype
>>> without doing a complete research of the existing libraries.
>>
>> I think that should be FindQt.cmake's job (i.e., return the correct
>> library
>> results depending on whether and how CMAKE_BUILD_TYPE is set). I think it
>> should be straightforward to avoid re-searching the libraries each time.
>> (Get cached library search results and return what is relevant depending
>> on
>> CMAKE_BUILD_TYPE.) Or did you mean something else?
>>
>>
>>> And CMAKE_BUILD_TYPE isn't use for some generators + is not set when you
>>> run cmake on a clean builddir without any options.
>>
>> Actually, I have no complaints about FindQt4.cmake when CMAKE_BUILD_TYPE
>> is
>> _not_ set.  But I do think it is a good idea to provide clean results when
>> CMAKE_BUILD_TYPE _is_ specified rather than a messy combination of
>> everything that _might_ be relevant.
>
> Its not clear to me how you'd make a .pc file for pkg-config for someone who
> chooses to build PLplot with a generator that ignores CMAKE_BUILD_TYPE.
> From what I can tell, it seems you're asking for a change to FindQt4.cmake
> to support making a CMakeLists.txt that is less-portable.
> Maybe we need another way to solve this?
>
> Clint
>

Don't forget that there are the following cmake variables after
FindQt4 has been run:

QT_QTCORE_LIBRARY
QT_QTCORE_LIBRARY_DEBUG
QT_QTCORE_LIBRARY_RELEASE

Repeated for each Qt library. Maybe you can use those variables in
your cmake code to copy the correct libraries. From what I have seen
the FindQt4 will do the "right thing" based on what is installed and
the value of CMAKE_BUILD_TYPE.

All you would have to supply would be the list of Qt libraries that
your program depends on.

Does this help at all?

Mike Jackson
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to