Filipe Sousa wrote:
Bill Hoffman wrote:
FIND_PATH(QT_INCLUDE NAMES qt.h PATH_SUFFIXES qt)

CMake will find it in /usr/local/include/qt/qt.h and set QT_INCLUDE
to /usr/local/include.

[EMAIL PROTECTED] ~/tmp/find/build $ ls -l /usr/local/include/qt/qt.h
- -rw-r--r--  1 root root 0 Mar  4 11:00 /usr/local/include/qt/qt.h

FIND_PATH(QT_INCLUDE NAMES qt.h PATH_SUFFIXES qt)
MESSAGE(STATUS ${QT_INCLUDE})
[snip]
Here QT_INCLUDE is /usr/local/include/qt and not /usr/local/include

This is the intended behavior, Bill's example was incorrect. If you want to find qt/qt.h then you would still do

FIND_PATH(QT_INCLUDE NAMES qt/qt.h)

The purpose of the PATH_SUFFIXES option is to provide extra places to look in subdirectories of those in the rest of the search path. The motivation is libraries like libxml2 which on Windows installs to PREFIX/include/libxml2/libxml/*.h, but the include files are supposed to be libxml/*.h. In order to avoid requiring users to list the libxml2 subdirectory in their search path one may use the PATH_SUFFIXES option:

FIND_PATH(
  LIBXML2_INCLUDE_DIR
  NAMES libxml/xpath.h
  PATH_SUFFIXES libxml2
  )

This will set LIBXML2_INCLUDE_DIR to PREFIX/include/libxml2 even though only PREFIX/include was in the search path (presumably in CMAKE_SYSTEM_INCLUDE_PATH).

-Brad
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to