aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/FindStrigi.cmake214
1 files changed, 114 insertions, 100 deletions
diff --git a/modules/FindStrigi.cmake b/modules/FindStrigi.cmake
index 843dc358..391b4189 100644
--- a/modules/FindStrigi.cmake
+++ b/modules/FindStrigi.cmake
@@ -9,78 +9,99 @@
# STRIGI_THROUGH_ANALYZER_PREFIX - strigi plugin prefix
-include(FindLibraryWithDebug)
-include(MacroPushRequiredVars)
-
if(NOT STRIGI_MIN_VERSION)
set(STRIGI_MIN_VERSION "0.5.9")
endif(NOT STRIGI_MIN_VERSION)
-if (WIN32)
- file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _program_FILES_DIR)
-endif(WIN32)
-
file(TO_CMAKE_PATH "$ENV{STRIGI_HOME}" strigi_home)
-if (NOT WIN32)
- if(NOT strigi_home)
- find_package(PkgConfig)
- if(PKG_CONFIG_EXECUTABLE)
- pkg_check_modules(STRIGI libstreamanalyzer>=${STRIGI_MIN_VERSION})
- endif(PKG_CONFIG_EXECUTABLE)
- endif(NOT strigi_home)
-endif(NOT WIN32)
-
-if (NOT STRIGI_INCLUDEDIR)
- find_path(STRIGI_INCLUDE_DIR strigi/streamanalyzer.h
- PATHS
- ${strigi_home}/include
- ${STRIGI_INCLUDEDIR}
- ${_program_FILES_DIR}/strigi/include
- )
- set( STRIGI_INCLUDEDIR ${STRIGI_INCLUDE_DIR} )
-else (NOT STRIGI_INCLUDEDIR)
- set( STRIGI_INCLUDE_DIR ${STRIGI_INCLUDEDIR} )
-endif (NOT STRIGI_INCLUDEDIR)
-
-
-find_library_with_debug(STRIGI_STREAMANALYZER_LIBRARY
- WIN32_DEBUG_POSTFIX d
- NAMES streamanalyzer
- PATHS
- ${strigi_home}/lib
- ${STRIGI_LIBRARY_DIRS}
- ${_program_FILES_DIR}/strigi/lib
-)
-
-
-find_library_with_debug(STRIGI_STREAMS_LIBRARY
- WIN32_DEBUG_POSTFIX d
- NAMES streams
- PATHS
- ${strigi_home}/lib
- ${STRIGI_LIBRARY_DIRS}
- ${_program_FILES_DIR}/strigi/lib
-)
-
-find_library_with_debug(STRIGI_STRIGIQTDBUSCLIENT_LIBRARY
- WIN32_DEBUG_POSTFIX d
- NAMES strigiqtdbusclient
- PATHS
- ${strigi_home}/lib
- ${STRIGI_LIBRARY_DIRS}
- ${_program_FILES_DIR}/strigi/lib
-)
-
-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."
- STRIGI_STREAMS_LIBRARY STRIGI_STREAMANALYZER_LIBRARY STRIGI_INCLUDE_DIR)
-
-if (STRIGI_FOUND)
- # Check for the SIC change between 0.5.9 and 0.6.0...
-
- macro(MACRO_CHECK_STRIGI_API_SCREWUP _RETTYPE _RESULT)
+# Try to find and load the StrigiConfig.cmake installed by kdesupport/strigi
+find_package(Strigi NO_MODULE PATHS "${strigi_home}/lib/strigi" "${strigi_home}/lib64/strigi")
+
+# If StrigiConfig.cmake (installed by kdesupport/Strigi) has been found
+# and it contains all necessary information (since November 16th, 2008), use the information
+# included there, otherwise search it in the same way as any non-cmake project.
+# This variable is set by StrigiConfig.cmake . Alex
+if (STRIGI_CONFIG_FOUND_AND_HAS_COMPLETE_INFORMATION)
+ set (_strigiErrorMessage "Couldn't find Strigi streams and streamanalyzer libraries. Set the environment variable STRIGI_HOME (or CMAKE_PREFIX_PATH) to the strigi install dir.")
+ set(STRIGI_VERSION_OK TRUE)
+ if(STRIGI_VERSION VERSION_LESS ${STRIGI_MIN_VERSION})
+ set(_strigiErrorMessage "Strigi version ${STRIGI_VERSION} found, but at least version ${STRIGI_MIN_VERSION} is required")
+ set(STRIGI_VERSION_OK FALSE)
+ endif(STRIGI_VERSION VERSION_LESS ${STRIGI_MIN_VERSION})
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(Strigi
+ "${_strigiErrorMessage}"
+ STRIGI_STREAMS_LIBRARY STRIGI_STREAMANALYZER_LIBRARY STRIGI_INCLUDE_DIR STRIGI_VERSION_OK)
+
+else(STRIGI_CONFIG_FOUND_AND_HAS_COMPLETE_INFORMATION)
+ # this else() branch is for finding strigi versions before November 16th, 2008. Alex
+ include(FindLibraryWithDebug)
+ include(MacroPushRequiredVars)
+
+ if (WIN32)
+ file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _program_FILES_DIR)
+ endif(WIN32)
+
+ if (NOT WIN32)
+ if(NOT strigi_home)
+ find_package(PkgConfig)
+ if(PKG_CONFIG_EXECUTABLE)
+ pkg_check_modules(STRIGI libstreamanalyzer>=${STRIGI_MIN_VERSION})
+ endif(PKG_CONFIG_EXECUTABLE)
+ endif(NOT strigi_home)
+ endif(NOT WIN32)
+
+ if (NOT STRIGI_INCLUDEDIR)
+ find_path(STRIGI_INCLUDE_DIR strigi/streamanalyzer.h
+ PATHS
+ ${strigi_home}/include
+ ${STRIGI_INCLUDEDIR}
+ ${_program_FILES_DIR}/strigi/include
+ )
+ set( STRIGI_INCLUDEDIR ${STRIGI_INCLUDE_DIR} )
+ else (NOT STRIGI_INCLUDEDIR)
+ set( STRIGI_INCLUDE_DIR ${STRIGI_INCLUDEDIR} )
+ endif (NOT STRIGI_INCLUDEDIR)
+
+
+ find_library_with_debug(STRIGI_STREAMANALYZER_LIBRARY
+ WIN32_DEBUG_POSTFIX d
+ NAMES streamanalyzer
+ PATHS
+ ${strigi_home}/lib
+ ${STRIGI_LIBRARY_DIRS}
+ ${_program_FILES_DIR}/strigi/lib
+ )
+
+ find_library_with_debug(STRIGI_STREAMS_LIBRARY
+ WIN32_DEBUG_POSTFIX d
+ NAMES streams
+ PATHS
+ ${strigi_home}/lib
+ ${STRIGI_LIBRARY_DIRS}
+ ${_program_FILES_DIR}/strigi/lib
+ )
+
+ find_library_with_debug(STRIGI_STRIGIQTDBUSCLIENT_LIBRARY
+ WIN32_DEBUG_POSTFIX d
+ NAMES strigiqtdbusclient
+ PATHS
+ ${strigi_home}/lib
+ ${STRIGI_LIBRARY_DIRS}
+ ${_program_FILES_DIR}/strigi/lib
+ )
+
+ 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."
+ STRIGI_STREAMS_LIBRARY STRIGI_STREAMANALYZER_LIBRARY STRIGI_INCLUDE_DIR)
+
+ if (STRIGI_FOUND)
+ # Check for the SIC change between 0.5.9 and 0.6.0...
+
+ macro(MACRO_CHECK_STRIGI_API_SCREWUP _RETTYPE _RESULT)
set (_STRIGI_API_SCREWUP_SOURCE_CODE "
#include <strigi/streamendanalyzer.h>
using namespace Strigi;
@@ -99,53 +120,46 @@ int main()
return 0;
}
")
- check_cxx_source_compiles("${_STRIGI_API_SCREWUP_SOURCE_CODE}" ${_RESULT})
- endmacro(MACRO_CHECK_STRIGI_API_SCREWUP)
-
- include(CheckCXXSourceCompiles)
- macro_push_required_vars()
- set( CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${STRIGI_INCLUDEDIR} )
- set( CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${STRIGI_STREAMS_LIBRARY} ${STRIGI_STREAMANALYZER_LIBRARY} )
- macro_check_strigi_api_screwup( "signed char" STRIGI_NEEDS_SIGNED_CHAR )
- macro_check_strigi_api_screwup( "char" STRIGI_NEEDS_CHAR )
- set( STRIGI_NEEDS_SIGNED_CHAR ${STRIGI_NEEDS_SIGNED_CHAR} CACHE BOOL "TRUE if strigi is 0.6.0 or later" )
- set( STRIGI_NEEDS_CHAR ${STRIGI_NEEDS_CHAR} CACHE BOOL "TRUE if strigi is 0.5.9 or before" )
- if (STRIGI_NEEDS_SIGNED_CHAR)
- message(STATUS "Strigi API needs 'signed char'")
- else (STRIGI_NEEDS_SIGNED_CHAR)
- if (STRIGI_NEEDS_CHAR)
- message(STATUS "Strigi API needs 'char'")
- else (STRIGI_NEEDS_CHAR)
- message(FATAL_ERROR "Strigi was found, but a simple test program does not compile, check CMakeFiles/CMakeError.log")
- endif (STRIGI_NEEDS_CHAR)
- endif (STRIGI_NEEDS_SIGNED_CHAR)
- macro_pop_required_vars()
-endif (STRIGI_FOUND)
+ check_cxx_source_compiles("${_STRIGI_API_SCREWUP_SOURCE_CODE}" ${_RESULT})
+ endmacro(MACRO_CHECK_STRIGI_API_SCREWUP)
+
+ include(CheckCXXSourceCompiles)
+ macro_push_required_vars()
+ set( CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${STRIGI_INCLUDEDIR} )
+ set( CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${STRIGI_STREAMS_LIBRARY} ${STRIGI_STREAMANALYZER_LIBRARY} )
+ macro_check_strigi_api_screwup( "signed char" STRIGI_NEEDS_SIGNED_CHAR )
+ macro_check_strigi_api_screwup( "char" STRIGI_NEEDS_CHAR )
+ set( STRIGI_NEEDS_SIGNED_CHAR ${STRIGI_NEEDS_SIGNED_CHAR} CACHE BOOL "TRUE if strigi is 0.6.0 or later" )
+ set( STRIGI_NEEDS_CHAR ${STRIGI_NEEDS_CHAR} CACHE BOOL "TRUE if strigi is 0.5.9 or before" )
+ if (STRIGI_NEEDS_SIGNED_CHAR)
+ message(STATUS "Strigi API needs 'signed char'")
+ else (STRIGI_NEEDS_SIGNED_CHAR)
+ if (STRIGI_NEEDS_CHAR)
+ message(STATUS "Strigi API needs 'char'")
+ else (STRIGI_NEEDS_CHAR)
+ message(FATAL_ERROR "Strigi was found, but a simple test program does not compile, check CMakeFiles/CMakeError.log")
+ endif (STRIGI_NEEDS_CHAR)
+ endif (STRIGI_NEEDS_SIGNED_CHAR)
+ macro_pop_required_vars()
+ endif (STRIGI_FOUND)
+
+endif (STRIGI_CONFIG_FOUND_AND_HAS_COMPLETE_INFORMATION)
if(WIN32)
# this is needed to have mingw, cygwin and msvc libs installed in one directory
if(MSVC)
set(STRIGI_LINE_ANALYZER_PREFIX msvc_strigila_)
- elseif(CYGWIN)
- set(STRIGI_LINE_ANALYZER_PREFIX cyg_strigila_)
- elseif(MINGW)
- set(STRIGI_LINE_ANALYZER_PREFIX mingw_strigila_)
- endif(MSVC)
-else(WIN32)
- set(STRIGI_LINE_ANALYZER_PREFIX strigila_)
-endif(WIN32)
-
-if(WIN32)
- # this is needed to have mingw, cygwin and msvc libs installed in one directory
- if(MSVC)
set(STRIGI_THROUGH_ANALYZER_PREFIX msvc_strigita_)
elseif(CYGWIN)
+ set(STRIGI_LINE_ANALYZER_PREFIX cyg_strigila_)
set(STRIGI_THROUGH_ANALYZER_PREFIX cyg_strigita_)
elseif(MINGW)
+ set(STRIGI_LINE_ANALYZER_PREFIX mingw_strigila_)
set(STRIGI_THROUGH_ANALYZER_PREFIX mingw_strigita_)
endif(MSVC)
else(WIN32)
+ set(STRIGI_LINE_ANALYZER_PREFIX strigila_)
set(STRIGI_THROUGH_ANALYZER_PREFIX strigita_)
endif(WIN32)