Warning, /frameworks/kdelibs4support/cmake/modules/FindKexiv2.cmake is written in an unsupported language. File is not indexed.

0001 # - Try to find the KExiv2 library
0002 #
0003 # If you have put a local version of libkexiv2 into your source tree,
0004 # set KEXIV2_LOCAL_DIR to the relative path to the local directory.
0005 #
0006 # Once done this will define
0007 #
0008 #  KEXIV2_FOUND - system has libkexiv2
0009 #  KEXIV2_INCLUDE_DIR - the libkexiv2 include directory
0010 #  KEXIV2_LIBRARIES - Link these to use libkexiv2
0011 #  KEXIV2_DEFINITIONS - Compiler switches required for using libkexiv2
0012 #
0013 
0014 # Copyright (c) 2008, Gilles Caulier, <caulier.gilles@gmail.com>
0015 #
0016 # Redistribution and use is allowed according to the terms of the BSD license.
0017 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0018 
0019 if (KEXIV2_INCLUDE_DIR AND KEXIV2_LIBRARIES AND KEXIV2_DEFINITIONS)
0020 
0021   message(STATUS "Found Kexiv2 library in cache: ${KEXIV2_LIBRARIES}")
0022 
0023   # in cache already
0024   set(KEXIV2_FOUND TRUE)
0025 
0026 else (KEXIV2_INCLUDE_DIR AND KEXIV2_LIBRARIES AND KEXIV2_DEFINITIONS)
0027 
0028   message(STATUS "Check Kexiv2 library in local sub-folder...")
0029 
0030   # Check if library is not in local sub-folder
0031 
0032   if (KEXIV2_LOCAL_DIR)
0033     set(KEXIV2_LOCAL_FOUND TRUE)
0034   else (KEXIV2_LOCAL_DIR)
0035     find_file(KEXIV2_LOCAL_FOUND libkexiv2/version.h.cmake ${CMAKE_SOURCE_DIR}/libkexiv2 ${CMAKE_SOURCE_DIR}/libs/libkexiv2 NO_DEFAULT_PATH)
0036 
0037     if (KEXIV2_LOCAL_FOUND)
0038       # Was it found in libkexiv2/ or in libs/libkexiv2?
0039       find_file(KEXIV2_LOCAL_FOUND_IN_LIBS libkexiv2/version.h.cmake ${CMAKE_SOURCE_DIR}/libs/libkexiv2 NO_DEFAULT_PATH)
0040       if (KEXIV2_LOCAL_FOUND_IN_LIBS)
0041         set(KEXIV2_LOCAL_DIR libs/libkexiv2)
0042       else (KEXIV2_LOCAL_FOUND_IN_LIBS)
0043         set(KEXIV2_LOCAL_DIR libkexiv2)
0044       endif (KEXIV2_LOCAL_FOUND_IN_LIBS)
0045     endif (KEXIV2_LOCAL_FOUND)
0046 
0047   endif (KEXIV2_LOCAL_DIR)
0048 
0049   if (KEXIV2_LOCAL_FOUND)
0050     # we need two include directories: because the version.h file is put into the build directory
0051     # TODO KEXIV2_INCLUDE_DIR sounds like it should contain only one directory...
0052     set(KEXIV2_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/${KEXIV2_LOCAL_DIR} ${CMAKE_BINARY_DIR}/${KEXIV2_LOCAL_DIR})
0053     set(KEXIV2_DEFINITIONS "-I${CMAKE_SOURCE_DIR}/${KEXIV2_LOCAL_DIR}" "-I${CMAKE_BINARY_DIR}/${KEXIV2_LOCAL_DIR}")
0054     set(KEXIV2_LIBRARIES kexiv2)
0055     message(STATUS "Found Kexiv2 library in local sub-folder: ${CMAKE_SOURCE_DIR}/${KEXIV2_LOCAL_DIR}")
0056     set(KEXIV2_FOUND TRUE)
0057     mark_as_advanced(KEXIV2_INCLUDE_DIR KEXIV2_LIBRARIES KEXIV2_DEFINITIONS)
0058 
0059   else(KEXIV2_LOCAL_FOUND)
0060     if(NOT WIN32) 
0061       message(STATUS "Check Kexiv2 library using pkg-config...")
0062 
0063       # use pkg-config to get the directories and then use these values
0064       # in the FIND_PATH() and FIND_LIBRARY() calls
0065       include(UsePkgConfig)
0066     
0067       PKGCONFIG(libkexiv2 _KEXIV2IncDir _KEXIV2LinkDir _KEXIV2LinkFlags _KEXIV2Cflags)
0068     
0069       if(_KEXIV2LinkFlags)
0070         # query pkg-config asking for a libkexiv2 >= 0.2.0
0071         exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=0.2.0 libkexiv2 RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
0072         if(_return_VALUE STREQUAL "0")
0073             message(STATUS "Found libkexiv2 release >= 0.2.0")
0074             set(KEXIV2_VERSION_GOOD_FOUND TRUE)
0075         else(_return_VALUE STREQUAL "0")
0076             message(STATUS "Found libkexiv2 release < 0.2.0, too old")
0077             set(KEXIV2_VERSION_GOOD_FOUND FALSE)
0078             set(KEXIV2_FOUND FALSE)
0079         endif(_return_VALUE STREQUAL "0")
0080       else(_KEXIV2LinkFlags)
0081         set(KEXIV2_VERSION_GOOD_FOUND FALSE)
0082         set(KEXIV2_FOUND FALSE)
0083       endif(_KEXIV2LinkFlags)
0084     else(NOT WIN32)
0085       set(KEXIV2_VERSION_GOOD_FOUND TRUE)
0086     endif(NOT WIN32)
0087 
0088     if(KEXIV2_VERSION_GOOD_FOUND)
0089         set(KEXIV2_DEFINITIONS "${_KEXIV2Cflags}")
0090     
0091         find_path(KEXIV2_INCLUDE_DIR libkexiv2/version.h
0092         ${_KEXIV2IncDir}
0093         )
0094     
0095         find_library(KEXIV2_LIBRARIES NAMES kexiv2
0096         PATHS
0097         ${_KEXIV2LinkDir}
0098         )
0099     
0100         if (KEXIV2_INCLUDE_DIR AND KEXIV2_LIBRARIES)
0101             set(KEXIV2_FOUND TRUE)
0102         endif (KEXIV2_INCLUDE_DIR AND KEXIV2_LIBRARIES)
0103       endif(KEXIV2_VERSION_GOOD_FOUND) 
0104       if (KEXIV2_FOUND)
0105           if (NOT Kexiv2_FIND_QUIETLY)
0106               message(STATUS "Found libkexiv2: ${KEXIV2_LIBRARIES}")
0107           endif (NOT Kexiv2_FIND_QUIETLY)
0108       else (KEXIV2_FOUND)
0109           if (Kexiv2_FIND_REQUIRED)
0110               if (NOT KEXIV2_INCLUDE_DIR)
0111                   message(FATAL_ERROR "Could NOT find libkexiv2 header files")
0112               endif (NOT KEXIV2_INCLUDE_DIR)
0113               if (NOT KEXIV2_LIBRARIES)
0114                   message(FATAL_ERROR "Could NOT find libkexiv2 library")
0115               endif (NOT KEXIV2_LIBRARIES)
0116           endif (Kexiv2_FIND_REQUIRED)
0117       endif (KEXIV2_FOUND)
0118     
0119     mark_as_advanced(KEXIV2_INCLUDE_DIR KEXIV2_LIBRARIES KEXIV2_DEFINITIONS)
0120 
0121   endif(KEXIV2_LOCAL_FOUND)
0122   
0123 endif (KEXIV2_INCLUDE_DIR AND KEXIV2_LIBRARIES AND KEXIV2_DEFINITIONS)