kdelibs/kdelibs-4.9.1-FindKipi-libk...

225 lines
9.3 KiB
Diff

diff -up kdelibs-4.9.1/cmake/modules/FindKipi.cmake.FindKipi-libkipi2 kdelibs-4.9.1/cmake/modules/FindKipi.cmake
--- kdelibs-4.9.1/cmake/modules/FindKipi.cmake.FindKipi-libkipi2 2012-08-13 03:39:41.000000000 -0500
+++ kdelibs-4.9.1/cmake/modules/FindKipi.cmake 2012-09-26 08:01:10.326462520 -0500
@@ -1,116 +1,119 @@
-# - Try to find the Kipi library
+# Module that tries to find the Kipi library
#
# If you have put a local version of libkipi into your source tree,
# set KIPI_LOCAL_DIR to the relative path to the local directory.
#
# Once done this will define
#
-# KIPI_FOUND - system has libkipi
-# KIPI_INCLUDE_DIR - the libkipi include directory
-# KIPI_LIBRARIES - Link these to use libkipi
+# KIPI_FOUND - System has libkipi
+# KIPI_INCLUDE_DIR - The libkipi include directory
+# KIPI_LIBRARIES - Link these to use libkipi
# KIPI_DEFINITIONS - Compiler switches required for using libkipi
+# KIPI_VERSION - The release version of the Kipi library
+# KIPI_SO_VERSION - The binary SO version of the Kipi library
#
-# Copyright (c) 2008, Gilles Caulier, <caulier.gilles@gmail.com>
+# Copyright (c) 2012, Victor Dodon <dodonvictor at gmail dot com>
+# Copyright (c) 2012, Gilles Caulier <caulier dot gilles at gmail dot com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-if (KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS)
+IF(KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS AND KIPI_VERSION AND KIPI_SO_VERSION)
- message(STATUS "Found Kipi library in cache: ${KIPI_LIBRARIES}")
+ IF(NOT Kipi_FIND_QUIETLY)
+ MESSAGE(STATUS "Found kipi library in cache ${KIPI_LIBRARIES}")
+ ENDIF(NOT Kipi_FIND_QUIETLY)
+ # Already in cache
+ SET(KIPI_FOUND TRUE)
+
+ELSE(KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS AND KIPI_VERSION AND KIPI_SO_VERSION)
+
+ IF(NOT Kipi_FIND_QUIETLY)
+ MESSAGE(STATUS "Check Kipi library in local sub-folder...")
+ ENDIF(NOT Kipi_FIND_QUIETLY)
+
+ IF(KIPI_LOCAL_DIR)
+ FIND_FILE(KIPI_LOCAL_FOUND libkipi/version.h.cmake ${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR} NO_DEFAULT_PATH)
+ IF(NOT KIPI_LOCAL_FOUND)
+ MESSAGE(WARNING "KIPI_LOCAL_DIR specified as \"${KIPI_LOCAL_DIR}\" but libkipi could not be found there.")
+ ENDIF(NOT KIPI_LOCAL_FOUND)
+ ELSE(KIPI_LOCAL_DIR)
+ FIND_FILE(KIPI_LOCAL_FOUND libkipi/version.h.cmake ${CMAKE_SOURCE_DIR}/libkipi NO_DEFAULT_PATH)
+ IF(KIPI_LOCAL_FOUND)
+ SET(KIPI_LOCAL_DIR libkipi)
+ ENDIF(KIPI_LOCAL_FOUND)
+
+ FIND_FILE(KIPI_LOCAL_FOUND libkipi/version.h.cmake ${CMAKE_SOURCE_DIR}/libs/libkipi NO_DEFAULT_PATH)
+ IF(KIPI_LOCAL_FOUND)
+ SET(KIPI_LOCAL_DIR libs/libkipi)
+ ENDIF(KIPI_LOCAL_FOUND)
+ ENDIF(KIPI_LOCAL_DIR)
+
+ IF(KIPI_LOCAL_FOUND)
+
+ SET(KIPI_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR}" "${CMAKE_BINARY_DIR}/${KIPI_LOCAL_DIR}")
+ SET(KIPI_DEFINITIONS "-I${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR}" "-I${CMAKE_BINARY_DIR}/${KIPI_LOCAL_DIR}")
+ SET(KIPI_LIBRARIES kipi)
+ IF(NOT Kipi_FIND_QUIETLY)
+ MESSAGE(STATUS "Found Kipi library in local sub-folder: ${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR}")
+ ENDIF(NOT Kipi_FIND_QUIETLY)
+ SET(KIPI_FOUND TRUE)
+ SET(KIPI_VERSION_H_FILENAME "${CMAKE_BINARY_DIR}/${KIPI_LOCAL_DIR}/libkipi/version.h")
+
+ ELSE(KIPI_LOCAL_FOUND)
+
+ IF(NOT WIN32)
+ IF(NOT Kipi_FIND_QUIETLY)
+ MESSAGE(STATUS "Check Kipi library using pkg-config...")
+ ENDIF(NOT Kipi_FIND_QUIETLY)
+
+ INCLUDE(FindPkgConfig)
+ PKG_CHECK_MODULES(KIPI libkipi>=1.2.0)
+ ENDIF(NOT WIN32)
+
+ FIND_LIBRARY(KIPI_LIBRARIES NAMES libkipi PATHS ${KIPI_LIBRARY_DIRS} ${LIB_INSTALL_DIR} ${KDE4_LIB_DIR})
+ FIND_PATH(KIPI_INCLUDE_DIR NAMES libkipi/version.h PATHS ${KIPI_INCLUDE_DIRS} ${INCLUDE_INSTALL_DIR} ${KDE4_INCLUDE_DIR})
+ SET(KIPI_VERSION_H_FILENAME "${KIPI_INCLUDE_DIR}/libkipi/version.h")
+ SET(KIPI_DEFINITIONS ${KIPI_CFLAGS} CACHE STRING "Kipi definitions")
+
+ INCLUDE(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(KIPI DEFAULT_MSG KIPI_LIBRARIES KIPI_INCLUDE_DIR)
+
+ ENDIF(KIPI_LOCAL_FOUND)
+
+ IF(KIPI_FOUND)
+
+ IF(NOT KIPI_VERSION)
+ FILE(READ "${KIPI_VERSION_H_FILENAME}" KIPI_VERSION_H_CONTENT)
+ STRING(REGEX REPLACE ".*static +const +char +kipi_version\\[\\] += +\"([^\"]+)\".*" "\\1" KIPI_VERSION "${KIPI_VERSION_H_CONTENT}")
+ MESSAGE(STATUS "Kipi library version: ${KIPI_VERSION}")
+ ENDIF(NOT KIPI_VERSION)
+
+ IF(NOT KIPI_SO_VERSION)
+ FILE(READ "${KIPI_VERSION_H_FILENAME}" KIPI_VERSION_H_CONTENT)
+ STRING(REGEX REPLACE
+ ".*static +const +int +kipi_binary_version += ([^ ;]+).*"
+ "\\1"
+ KIPI_SO_VERSION_FOUND
+ "${KIPI_VERSION_H_CONTENT}"
+ )
+ SET(KIPI_SO_VERSION ${KIPI_SO_VERSION_FOUND} CACHE STRING "libkipi so version")
+ MESSAGE(STATUS "Kipi library SO binary version: ${KIPI_SO_VERSION}")
+ ENDIF(NOT KIPI_SO_VERSION)
+
+ UNSET(KIPI_VERSION_H_CONTENT)
+ UNSET(KIPI_VERSION_H_FILENAME)
+ ENDIF(KIPI_FOUND)
+
+ IF(KIPI_FOUND)
+ MARK_AS_ADVANCED(KIPI_INCLUDE_DIR KIPI_LIBRARIES KIPI_DEFINITIONS KIPI_VERSION KIPI_SO_VERSION)
+ ELSE(KIPI_FOUND)
+ UNSET(KIPI_INCLUDE_DIR)
+ UNSET(KIPI_LIBRARIES)
+ UNSET(KIPI_DEFINITIONS)
+ UNSET(KIPI_VERSION)
+ UNSET(KIPI_SO_VERSION)
+ ENDIF(KIPI_FOUND)
- # in cache already
- set(KIPI_FOUND TRUE)
-
-else (KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS)
-
- message(STATUS "Check Kipi library in local sub-folder...")
-
- # Check if library is not in local sub-folder
-
- if (KIPI_LOCAL_DIR)
- set (KIPI_LOCAL_FOUND TRUE)
- else (KIPI_LOCAL_DIR)
- find_file(KIPI_LOCAL_FOUND libkipi/kipi.h ${CMAKE_SOURCE_DIR}/libkipi ${CMAKE_SOURCE_DIR}/libs/libkipi NO_DEFAULT_PATH)
-
- if (KIPI_LOCAL_FOUND)
- # Was it found in libkdcraw/ or in libs/libkdcraw?
- find_file(KIPI_LOCAL_FOUND_IN_LIBS libkipi/kipi.h ${CMAKE_SOURCE_DIR}/libs/libkipi NO_DEFAULT_PATH)
- if (KIPI_LOCAL_FOUND_IN_LIBS)
- set(KIPI_LOCAL_DIR libs/libkipi)
- else (KIPI_LOCAL_FOUND_IN_LIBS)
- set(KIPI_LOCAL_DIR libkipi)
- endif (KIPI_LOCAL_FOUND_IN_LIBS)
- endif (KIPI_LOCAL_FOUND)
- endif (KIPI_LOCAL_DIR)
-
- if (KIPI_LOCAL_FOUND)
- # we need two include directories: because the version.h file is put into the build directory
- # TODO KIPI_INCLUDE_DIR sounds like it should contain only one directory...
- set(KIPI_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR} ${CMAKE_BINARY_DIR}/${KIPI_LOCAL_DIR})
- set(KIPI_DEFINITIONS "-I${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR}" "-I${CMAKE_BINARY_DIR}/${KIPI_LOCAL_DIR}")
- set(KIPI_LIBRARIES kipi)
- message(STATUS "Found Kipi library in local sub-folder: ${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR}")
- set(KIPI_FOUND TRUE)
- mark_as_advanced(KIPI_INCLUDE_DIR KIPI_LIBRARIES KIPI_DEFINITIONS)
-
- else (KIPI_LOCAL_FOUND)
-
- if (NOT WIN32)
- message(STATUS "Check Kipi library using pkg-config...")
-
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- include(UsePkgConfig)
-
- PKGCONFIG(libkipi _KIPIIncDir _KIPILinkDir _KIPILinkFlags _KIPICflags)
-
- if (_KIPILinkFlags)
- # query pkg-config asking for a libkipi >= 0.2.0
- exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=0.2.0 libkipi RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
- if (_return_VALUE STREQUAL "0")
- message(STATUS "Found libkipi release >= 0.2.0")
- set(KIPI_VERSION_GOOD_FOUND TRUE)
- else (_return_VALUE STREQUAL "0")
- message(STATUS "Found libkipi release < 0.2.0, too old")
- set(KIPI_VERSION_GOOD_FOUND FALSE)
- set(KIPI_FOUND FALSE)
- endif (_return_VALUE STREQUAL "0")
- else (_KIPILinkFlags)
- set(KIPI_VERSION_GOOD_FOUND FALSE)
- set(KIPI_FOUND FALSE)
- endif (_KIPILinkFlags)
- else (NOT WIN32)
- set(KIPI_VERSION_GOOD_FOUND TRUE)
- endif (NOT WIN32)
- if (KIPI_VERSION_GOOD_FOUND)
- set(KIPI_DEFINITIONS ${_KIPICflags})
-
- find_path(KIPI_INCLUDE_DIR NAMES libkipi/version.h PATHS ${KDE4_INCLUDE_DIR} ${_KIPIIncDir})
- find_library(KIPI_LIBRARIES NAMES kipi PATHS ${KDE4_LIB_DIR} ${_KIPILinkDir})
-
- if (KIPI_INCLUDE_DIR AND KIPI_LIBRARIES)
- set(KIPI_FOUND TRUE)
- endif (KIPI_INCLUDE_DIR AND KIPI_LIBRARIES)
- endif (KIPI_VERSION_GOOD_FOUND)
- if (KIPI_FOUND)
- if (NOT Kipi_FIND_QUIETLY)
- message(STATUS "Found libkipi: ${KIPI_LIBRARIES}")
- endif (NOT Kipi_FIND_QUIETLY)
- else (KIPI_FOUND)
- if (Kipi_FIND_REQUIRED)
- if (NOT KIPI_INCLUDE_DIR)
- message(FATAL_ERROR "Could NOT find libkipi header files")
- endif (NOT KIPI_INCLUDE_DIR)
- if (NOT KIPI_LIBRARIES)
- message(FATAL_ERROR "Could NOT find libkipi library")
- endif (NOT KIPI_LIBRARIES)
- endif (Kipi_FIND_REQUIRED)
- endif (KIPI_FOUND)
-
- mark_as_advanced(KIPI_INCLUDE_DIR KIPI_LIBRARIES KIPI_DEFINITIONS)
-
- endif (KIPI_LOCAL_FOUND)
-
-endif (KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS)
+ENDIF(KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS AND KIPI_VERSION AND KIPI_SO_VERSION)