[CMake] FIND_PATH issue in FindQt4.cmake

Harinarayan Krishnan hkrishnan at lbl.gov
Tue Feb 15 09:34:07 EST 2011


Hi All,

Thanks for the help so far, I will check and see if CMake 2.8.4rc has the
same issue meanwhile I noticed that FIND_PATH seems to have special
instructions for Darwin machines with the use of CMAKE_FIND_FRAMEWORK on
page http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:find_path

The notes are a little confusing: it says CMAKE_FIND_FRAMEWORK defaults to
"FIRST" on Darwin systems which I can interpret one of two ways.

First, If a standard library and a framework are found in the same search
order then CMAKE will use this variable to determine which to pick first.

Second, if a framework is found regardless of where it is in the search
order it will be picked. I suspect the choice is the first one. However, in
my test I found that if I set CMAKE_FIND_FRAMEWORK to be "LAST" then CMAKE
picks the proper path. This would make me think the second option is at play
or it is just pure coincidence that this option happened to give me the
correct result.

Any of you know what the correct option is? To me it would make sense that
FIND_PATH honors the search order which would mean that the HINTS option in
FindQt4 should have higher precedence than the Framework in the
CMAKE_SYSTEM_FRAMEWORK_PATH.

Thanks,
Hari


On Mon, Feb 14, 2011 at 11:54 PM, Andreas Pakulat <apaku at gmx.de> wrote:

> On 14.02.11 16:18:09, Clinton Stimpson wrote:
> > On Monday, February 14, 2011 03:27:11 pm Harinarayan Krishnan wrote:
> > > Hi All,
> > >
> > > I was trying to build the VisIt software package on my Mac OSX 1.5 .
> This
> > > package uses Qt 4.6.1 during its build. I ran into an issue where the
> > > QtCore path finds my globally installed version of Qt (4.7) as apposed
> to
> > > the Qt (4.6.1).
> > >
> > > While digging around I found that FIND_PATH (code included below) in
> > > FindQt4.cmake is pulling information from the system path and assigning
> > > this value to the QT_QTCORE_INCLUDE_DIR. This is causing a build
> failure
> > > where the rest of the QT headers are using 4.6.1 and QtCore is using
> > > version 4.7.
> > >
> > > The value in ${qt_headers} points to the correct 4.6.1 location yet
> > > FIND_PATH does not use this parameter. Any ideas?
> > >
> > >
> > >      _qt4_query_qmake(QT_INSTALL_HEADERS qt_headers)
> > >      SET(QT_QTCORE_INCLUDE_DIR NOTFOUND)
> > >      FIND_PATH(QT_QTCORE_INCLUDE_DIR QtCore
> > >                HINTS ${qt_headers}
> > >                ${QT_LIBRARY_DIR}/QtCore.framework/Headers
> > >                PATH_SUFFIXES QtCore
> > >        )
> > >
> >
> > Ok, I'm able to reproduce this problem.
> > I did notice that if I add the NO_CMAKE_SYSTEM_PATH option, then the
> problem
> > goes away.  But, I thought HINTS had a higher priority than paths from
> the
> > Mac's platform files.
> > And, I don't see this problem on Linux.
> > Is this a bug in find_path() ??
>
> Definetly, the only thing that has higher priority than HINTS are values
> from the cmake or environment variables CMAKE_PREFIX_PATH,
> CMAKE_INCLUDE_PATH and CMAKE_FRAMEWORK_PATH. There's no special
> behaviour for MacOSX documented.
>
> Someone should file a bugreport after verifying this still happens with
> the latest rc of 2.8.4.
>
> Andreas
>
> > --
> > Clinton Stimpson
> > Elemental Technologies, Inc
> > Computational Simulation Software, LLC
> > www.csimsoft.com
> > _______________________________________________
> > 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
> >
>
> --
> The time is right to make new friends.
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110215/6efbc3f0/attachment.htm>


More information about the CMake mailing list