diff options
| author | David Faure <faure@kde.org> | 2008-10-01 14:47:11 +0000 | 
|---|---|---|
| committer | David Faure <faure@kde.org> | 2008-10-01 14:47:11 +0000 | 
| commit | 29ebc324a8e96e6248c65527f1b0a798d676c27b (patch) | |
| tree | e39772a6b345a9fce25375e5eeb9120dc1fa086f /modules | |
| parent | d3b7cb7678aca09ac149364bfdde56be80474d2b (diff) | |
| download | extra-cmake-modules-29ebc324a8e96e6248c65527f1b0a798d676c27b.tar.gz extra-cmake-modules-29ebc324a8e96e6248c65527f1b0a798d676c27b.tar.bz2 | |
Use pkgconfig _first_, and use the result of that (if any), when looking for strigi paths.
This makes things compile again for people with both a system strigi (pre-0.6.0) in /usr and a trunk strigi elsewhere.
Many thanks to Akarsh Simha for doing all the testing.
svn path=/trunk/KDE/kdelibs/; revision=866641
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/FindStrigi.cmake | 89 | 
1 files changed, 37 insertions, 52 deletions
| diff --git a/modules/FindStrigi.cmake b/modules/FindStrigi.cmake index 27a78e7f..4794f42a 100644 --- a/modules/FindStrigi.cmake +++ b/modules/FindStrigi.cmake @@ -18,6 +18,39 @@ if(NOT STRIGI_MIN_VERSION)    set(STRIGI_MIN_VERSION "0.5.9")  endif(NOT STRIGI_MIN_VERSION) +if (NOT WIN32) +  include(UsePkgConfig) +  pkgconfig(libstreamanalyzer _STRIGI_INCLUDEDIR _STRIGI_LIBDIR _dummyLinkFlags _dummyCflags) +  #message(STATUS "_STRIGI_INCLUDEDIR=${_STRIGI_INCLUDEDIR} _STRIGI_LIBDIR=${_STRIGI_LIBDIR}") + +  if(_dummyLinkFlags) + +    exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=${STRIGI_MIN_VERSION} +                 libstreamanalyzer RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) + +    if(NOT _return_VALUE STREQUAL "0") +      message(STATUS "pkg-config query failed. did you set $PKG_CONFIG_PATH to the directory where strigi libstreamanalyzer.pc is installed?") +      message(FATAL_ERROR "Didn't find strigi >= ${STRIGI_MIN_VERSION}") +    else(NOT _return_VALUE STREQUAL "0") +      set(HAVE_STRIGI_VERSION TRUE) +      set (STRIGI_NEEDS_SIGNED_CHAR FALSE) +      exec_program(${PKGCONFIG_EXECUTABLE} ARGS --modversion libstreamanalyzer RETURN_VALUE _version_return_VALUE OUTPUT_VARIABLE _strigiVersion ) +      MACRO_ENSURE_VERSION("0.6.0" ${_strigiVersion} STRIGI_NEEDS_SIGNED_CHAR) +      # message(STATUS "Strigi version is ${_strigiVersion}. Needs signed char: ${STRIGI_NEEDS_SIGNED_CHAR}") + +      if(NOT Strigi_FIND_QUIETLY) +        message(STATUS "Found Strigi ${_strigiVersion}") +      endif(NOT Strigi_FIND_QUIETLY) +    endif(NOT _return_VALUE STREQUAL "0") +  else(_dummyLinkFlags) +    message(STATUS "pkgconfig didn't find strigi, couldn't check strigi version") +  endif(_dummyLinkFlags) +else (NOT WIN32) +  # STRIGI_NEEDS_SIGNED_CHAR is only set correct when pkgconfig is available... +  # we don't use strigi < 0.6.0 so assume STRIGI_NEEDS_SIGNED_CHAR is needed +  set(STRIGI_NEEDS_SIGNED_CHAR TRUE) +endif(NOT WIN32) +  if (WIN32)    file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _program_FILES_DIR)    string(REPLACE "\\" "/" _program_FILES_DIR "${_program_FILES_DIR}") @@ -28,6 +61,7 @@ string(REPLACE "\\" "/" strigi_home "$ENV{STRIGI_HOME}")  find_path(STRIGI_INCLUDE_DIR strigi/streamanalyzer.h    PATHS    ${strigi_home}/include +  ${_STRIGI_INCLUDEDIR}    ${_program_FILES_DIR}/strigi/include    NO_DEFAULT_PATH  ) @@ -39,6 +73,7 @@ find_library_with_debug(STRIGI_STREAMANALYZER_LIBRARY    NAMES streamanalyzer    PATHS    ${strigi_home}/lib +  ${_STRIGI_LIBDIR}    ${_program_FILES_DIR}/strigi/lib    NO_DEFAULT_PATH  ) @@ -53,6 +88,7 @@ find_library_with_debug(STRIGI_STREAMS_LIBRARY    NAMES streams    PATHS    ${strigi_home}/lib +  ${_STRIGI_LIBDIR}    ${_program_FILES_DIR}/strigi/lib    NO_DEFAULT_PATH  ) @@ -66,6 +102,7 @@ find_library_with_debug(STRIGI_STRIGIQTDBUSCLIENT_LIBRARY    NAMES strigiqtdbusclient    PATHS    ${strigi_home}/lib +  ${_STRIGI_LIBDIR}    ${_program_FILES_DIR}/strigi/lib    NO_DEFAULT_PATH  ) @@ -74,58 +111,6 @@ find_library_with_debug(STRIGI_STRIGIQTDBUSCLIENT_LIBRARY                          WIN32_DEBUG_POSTFIX d                          NAMES strigiqtdbusclient ) - -if (NOT WIN32 AND NOT HAVE_STRIGI_VERSION) -  include(UsePkgConfig) -  pkgconfig(libstreamanalyzer _dummyIncDir _dummyLinkDir _dummyLinkFlags _dummyCflags) - -  # if pkgconfig found strigi, check the version, otherwise print a warning -  if(_dummyLinkFlags) - -    exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=${STRIGI_MIN_VERSION} -                 libstreamanalyzer RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) - -    if(NOT _return_VALUE STREQUAL "0") -      message(STATUS "pkg-config query failed. did you set $PKG_CONFIG_PATH to the directory where strigi libstreamanalyzer.pc is installed?") -      message(FATAL_ERROR "Didn't find strigi >= ${STRIGI_MIN_VERSION}") -    else(NOT _return_VALUE STREQUAL "0") -      set(HAVE_STRIGI_VERSION TRUE) -      set (STRIGI_NEEDS_SIGNED_CHAR FALSE) -      exec_program(${PKGCONFIG_EXECUTABLE} ARGS --modversion libstreamanalyzer RETURN_VALUE _version_return_VALUE OUTPUT_VARIABLE _strigiVersion ) -      MACRO_ENSURE_VERSION("0.6.0" ${_strigiVersion} STRIGI_NEEDS_SIGNED_CHAR) -      # message(STATUS "Strigi version is ${_strigiVersion}. Needs signed char: ${STRIGI_NEEDS_SIGNED_CHAR}") - -      if(NOT Strigi_FIND_QUIETLY) -        message(STATUS "Found Strigi ${_strigiVersion}") -      endif(NOT Strigi_FIND_QUIETLY) -    endif(NOT _return_VALUE STREQUAL "0") -    if (NOT STRIGI_STREAMANALYZER_LIBRARY) -      find_library(STRIGI_STREAMANALYZER_LIBRARY NAMES streamanalyzer -                   PATHS ${_dummyLinkDir}) -    endif(NOT STRIGI_STREAMANALYZER_LIBRARY) -    if( NOT STRIGI_STRIGIQTDBUSCLIENT_LIBRARY) -       find_library(STRIGI_STRIGIQTDBUSCLIENT_LIBRARY NAMES strigiqtdbusclient -                    PATHS ${_dummyLinkDir}) -    endif(NOT STRIGI_STRIGIQTDBUSCLIENT_LIBRARY) -    if (NOT STRIGI_STREAMS_LIBRARY) -      find_library(STRIGI_STREAMS_LIBRARY NAMES streams -                   PATHS ${_dummyLinkDir}) -    endif(NOT STRIGI_STREAMS_LIBRARY) -    if (NOT STRIGI_INCLUDE_DIR) -      find_path(STRIGI_INCLUDE_DIR strigi/streamanalyzer.h -                PATHS ${_dummyIncDir}) -    endif(NOT STRIGI_INCLUDE_DIR) -  else(_dummyLinkFlags) -    message(STATUS "pkgconfig didn't find strigi, couldn't check strigi version") -  endif(_dummyLinkFlags) -endif (NOT WIN32 AND NOT HAVE_STRIGI_VERSION) - -if(WIN32) -  # STRIGI_NEEDS_SIGNED_CHAR is only set correct when pkgconfig is available... -  # we don't use strigi < 0.6.0 so assume STRIGI_NEEDS_SIGNED_CHAR is needed -  set(STRIGI_NEEDS_SIGNED_CHAR TRUE) -endif(WIN32) -  include(FindPackageHandleStandardArgs)  find_package_handle_standard_args(Strigi                                      "Couldn't find Strigi streams and streamanalyzer libraries. Set the environment variable STRIGI_HOME (or CMAKE_PREFIX_PATH if using CMake >=2.6) to the strigi install dir."   | 
