[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