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 | |
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
-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." |