[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [digikam-software-compilation] cmake/modules: Improved FindKipi cmake script
From:       Dodon Victor <dodonvictor () gmail ! com>
Date:       2012-07-31 22:13:31
Message-ID: 20120731221331.B6EB9A6094 () git ! kde ! org
[Download RAW message or body]

Git commit 6959a8677e4edbb2b267bc2ee87fd925ad9fa003 by Dodon Victor.
Committed on 01/08/2012 at 00:12.
Pushed by dodon into branch 'master'.

Improved FindKipi cmake script

M  +50   -53   cmake/modules/FindKipi.cmake

http://commits.kde.org/scratch/mwiesweg/digikam-sc/6959a8677e4edbb2b267bc2ee87fd925ad9fa003


diff --git a/cmake/modules/FindKipi.cmake b/cmake/modules/FindKipi.cmake
index e5960c6..ca4f758 100644
--- a/cmake/modules/FindKipi.cmake
+++ b/cmake/modules/FindKipi.cmake
@@ -19,79 +19,60 @@
 
 IF(KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS AND KIPI_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)
 
-  MESSAGE(STATUS "Check Kipi library in local sub-folder...")
+  IF(NOT Kipi_FIND_QUIETLY)
+    MESSAGE(STATUS "Check Kipi library in local sub-folder...")
+  ENDIF(NOT Kipi_FIND_QUIETLY)
 
   IF(KIPI_LOCAL_DIR)
-    SET(KIPI_LOCAL_FOUND TRUE)
+    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/plugin.h ${CMAKE_SOURCE_DIR}/libkipi
-      ${CMAKE_SOURCE_DIR}/libs/libkipi NO_DEFAULT_PATH)
-
-    IF (KIPI_LOCAL_FOUND)
-      FIND_FILE(KIPI_LOCAL_FOUND_IN_LIBS libkipi/plugin.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)
+    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_DIR)
+
+    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_DIR)
   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_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}")
-
+    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_CMAKE_FILE ${CMAKE_SOURCE_DIR}/${KIPI_LOCAL_DIR}/CMakeLists.txt)
-    FILE(READ ${KIPI_CMAKE_FILE} KIPI_CMAKE_FILE_CONTENT)
-    STRING(REGEX REPLACE ".*[\n|^]SET[ \t]*[(]KIPI_LIB_MAJOR_VERSION \
                \"([0-9]+)\"[)][ \t]*[\n|$].*"
-      "\\1" KIPI_MAJOR_VERSION "${KIPI_CMAKE_FILE_CONTENT}")
-    STRING(REGEX REPLACE ".*[\n|^]SET[ \t]*[(]KIPI_LIB_MINOR_VERSION \
                \"([0-9]+)\"[)][ \t]*[\n|$].*"
-      "\\1" KIPI_MINOR_VERSION "${KIPI_CMAKE_FILE_CONTENT}")
-    STRING(REGEX REPLACE ".*[\n|^]SET[ \t]*[(]KIPI_LIB_PATCH_VERSION \
                \"([0-9]+)\"[)][ \t]*[\n|$].*"
-      "\\1" KIPI_PATCH_VERSION "${KIPI_CMAKE_FILE_CONTENT}")
-    STRING(REGEX REPLACE ".*[\n|^]SET[ \t]*[(]KIPI_LIB_SUFFIX_VERSION \
                \"([^\"]*)\"[)][ \t]*[\n|$].*"
-      "\\1" KIPI_SUFFIX_VERSION "${KIPI_CMAKE_FILE_CONTENT}")
-    SET(KIPI_VERSION \
"${KIPI_MAJOR_VERSION}.${KIPI_MINOR_VERSION}.${KIPI_PATCH_VERSION}${KIPI_SUFFIX_VERSION}")
 +    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>=2.0.0)
+      PKG_FIND_MODULE(KIPI libkipi>=2.0.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}
-    )
-
+    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})
 
     INCLUDE(FindPackageHandleStandardArgs)
@@ -99,6 +80,22 @@ ELSE(KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS AND \
KIPI_VERSION)  
   ENDIF(KIPI_LOCAL_FOUND)
 
-  MARK_AS_ADVANCED(KIPI_INCLUDE_DIR KIPI_LIBRARIES KIPI_DEFINITIONS KIPI_VERSION)
+  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}") +      \
UNSET(KIPI_VERSION_H_CONTENT) +    ENDIF(NOT KIPI_VERSION)
+    UNSET(KIPI_VERSION_H_FILENAME)
+  ENDIF(KIPI_FOUND)
+
+  IF(KIPI_FOUND)
+    MARK_AS_ADVANCED(KIPI_INCLUDE_DIR KIPI_LIBRARIES KIPI_DEFINITIONS KIPI_VERSION)
+  ELSE(KIPI_FOUND)
+    UNSET(KIPI_INCLUDE_DIR)
+    UNSET(KIPI_LIBRARIES)
+    UNSET(KIPI_DEFINITIONS)
+    UNSET(KIPI_VERSION)
+  ENDIF(KIPI_FOUND)
 
 ENDIF(KIPI_INCLUDE_DIR AND KIPI_LIBRARIES AND KIPI_DEFINITIONS AND KIPI_VERSION)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic