This is an automatically generated e-mail. To reply, visit: http://svn.reviewboard.kde.org/r/5375/

On September 17th, 2010, 6:52 p.m., Alexander Neundorf wrote:

/usr/local is part of the default search directories, so it should be found if installed there.
I just tested this here locally and it works for me.

If it is not found when installed in /usr/local/, then we have to check what is going wrong there.

Alex

On September 19th, 2010, 5:08 p.m., Guy Maurel wrote:

mmmh!
I found at http://www.kitware.com/news/home/browse/168:
"FIND_LIBRARY and FIND_PATH now look in CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH environment variables in addition to and before the PATH environment variable. "
It is what I need, but nothing about a default value for CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH
Is it something the user *has* to do itself before running?

On September 21st, 2010, 5:38 p.m., Guy Maurel wrote:

Thanks to Alex for the discussion and your questions/helps.

The CMAKE_INCLUDE_PATH give the order to search for:
*First* at /usr/local
*then*  at /usr
This is done (I think) to give a priority to the packages one have self installed. 

At the FindLibAttica.cmake (and other more) there is some lines of code such:
IF (NOT WIN32)
   # use pkg-config to get the directories and then use these values
   # in the FIND_PATH() and FIND_LIBRARY() calls
   FIND_PACKAGE(PkgConfig)
   PKG_CHECK_MODULES(PC_LIBATTICA QUIET libattica)
   SET(LIBATTICA_DEFINITIONS ${PC_ATTICA_CFLAGS_OTHER})
ENDIF (NOT WIN32)

I am using ArchLinux and the pacman-command installs (implicitly) some packages I havn't take care.
One of them was "attica", installed at /usr . The search order is changed.
The cmake works correctly with FindLibAttica.cmake and told me: /usr/include .

*NOW* I would like to ask: What is the reason/strategy of changing the search order in this way?

*MY* problem is now solved.
Thanks
I got the "problem" because I don't anderstand the message, generate bei ccmake:
"* libattica (0.1.90 or higher)..."

I propose to do the same way as FindPolkitQt-1.cmake to improve the message with a warning such as:
"WARNING: LibAttica version 0.1.4 found at /usr/include is too old. Please install 0.1.90 or newer."
this way:
--- FindLibAttica.cmake (revision 1175580)
+++ FindLibAttica.cmake (working copy)
@@ -37,6 +37,7 @@
     STRING(REGEX REPLACE "LIBATTICA_VERSION_STRING \"(.*)\"\n" "\\1" LIBATTICA_VERSION ${LIBATTICA_VERSION_MATCH})
     IF(LIBATTICA_VERSION STRLESS "${LIBATTICA_MIN_VERSION}")
       SET(LIBATTICA_VERSION_OK FALSE)
+      MESSAGE("WARNING: LibAttica version ${LIBATTICA_VERSION} found at ${LIBATTICA_INCLUDE_DIR} is too old. Please install ${LIBATTICA_MIN_VERSION} or newer.")
       IF(LibAttica_FIND_REQUIRED)
         MESSAGE(FATAL_ERROR "LibAttica version ${LIBATTICA_VERSION} is too old. Please install ${LIBATTICA_MIN_VERSION} or newer.")
       ELSE(LibAttica_FIND_REQUIRED)

So I could have quickly seen where the problem is coming from.

- Guy


On September 17th, 2010, 6:08 p.m., Guy Maurel wrote:

Review request for kdelibs.
By Guy Maurel.

Updated 2010-09-17 18:08:15

Description

Some of the cmake/modules/Findxxx.cmake files have extended the search to the directory INCLUDE_INSTALL_DIR
It is usefull to find the version on had installed just before. Many default installations are /usr/local/

My proposal is to do the same with Attica.

Diffs

  • /trunk/KDE/kdelibs/cmake/modules/FindLibAttica.cmake (1175716)

View Diff