From d0aed7c6a251a7dd49975c26085c555da332cf1a Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Tue, 24 Jul 2012 17:54:17 +0200 Subject: [PATCH] support both libgphoto2 2.5.0 and 2.4.0 --- CMakeLists.txt | 34 ++++++++++++++++++++---------- digikam/utils/config-digikam.h.cmake | 3 +++ utilities/cameragui/devices/gpcamera.cpp | 15 +++++++++++++ 3 Dateien geändert, 41 Zeilen hinzugefügt(+), 11 Zeilen entfernt(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dfc7f16..51fb603 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -329,6 +329,24 @@ IF (NOT WIN32 AND HAVE_GPHOTO2) MACRO_OPTIONAL_FIND_PACKAGE(USB) ENDIF (NOT WIN32 AND HAVE_GPHOTO2) +IF(GPHOTO2_FOUND) + EXEC_PROGRAM(gphoto2-config ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GPHOTO2_VERSION) + STRING(REPLACE "libgphoto2" "" GPHOTO2_VERSION "${GPHOTO2_VERSION}") + MACRO_ENSURE_VERSION("2.4.0" "${GPHOTO2_VERSION}" VERSION_GPHOTO2) + IF(VERSION_GPHOTO2 AND LIBUSB_FOUND) + SET(GPHOTO2_FOUND true) + ELSE(VERSION_GPHOTO2 AND LIBUSB_FOUND) + SET(GPHOTO2_FOUND false) + ENDIF(VERSION_GPHOTO2 AND LIBUSB_FOUND) + MACRO_ENSURE_VERSION("2.5.0" "${GPHOTO2_VERSION}" VERSION_GPHOTO25) + IF(VERSION_GPHOTO25) + SET(HAVE_GPHOTO25 1) + ELSE(VERSION_GPHOTO25) + SET(HAVE_GPHOTO25 0) + ENDIF(VERSION_GPHOTO25) +ENDIF(GPHOTO2_FOUND) + + MACRO_OPTIONAL_FIND_PACKAGE(KdepimLibs) MACRO_BOOL_TO_01(KDEPIMLIBS_FOUND HAVE_KDEPIMLIBS) @@ -378,6 +396,8 @@ MACRO_OPTIONAL_FIND_PACKAGE(Doxygen) CONFIGURE_FILE(digikam/utils/config-digikam.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/digikam/utils/config-digikam.h) + + # ================================================================================================== # Log messages @@ -428,18 +448,10 @@ ENDIF(CLAPACK_FOUND) # ================================================================ IF(GPHOTO2_FOUND) - EXEC_PROGRAM(gphoto2-config ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GPHOTO2_VERSION) - STRING(REPLACE "libgphoto2" "" GPHOTO2_VERSION "${GPHOTO2_VERSION}") - MACRO_ENSURE_VERSION("2.4.0" "${GPHOTO2_VERSION}" VERSION_GPHOTO2) - IF(VERSION_GPHOTO2 AND LIBUSB_FOUND) - SET(GPHOTO2_FOUND true) - ELSE(VERSION_GPHOTO2 AND LIBUSB_FOUND) - SET(GPHOTO2_FOUND false) - ENDIF(VERSION_GPHOTO2 AND LIBUSB_FOUND) -ENDIF(GPHOTO2_FOUND) - -IF(GPHOTO2_FOUND) MESSAGE(STATUS " libgphoto2 and libusb libraries found.... YES (optional)") + IF(HAVE_GPHOTO25) + MESSAGE(STATUS " libgphoto2 2.5 library found............. YES (optional)") + endIF(HAVE_GPHOTO25) ELSE(GPHOTO2_FOUND) MESSAGE(STATUS " libgphoto2 and libusb libraries found.... NO (optional)") MESSAGE(STATUS "") diff --git a/digikam/utils/config-digikam.h.cmake b/digikam/utils/config-digikam.h.cmake index d886499..4c1c6d3 100644 --- a/digikam/utils/config-digikam.h.cmake +++ b/digikam/utils/config-digikam.h.cmake @@ -45,6 +45,9 @@ /* Define to 1 if GPhoto2 shared library is installed */ #cmakedefine HAVE_GPHOTO2 1 +/* Define to 1 if libgphoto2 2.5 shared library is installed */ +#cmakedefine HAVE_GPHOTO25 1 + /* Define to 1 if thumbnails database is used */ #cmakedefine USE_THUMBS_DB 1 diff --git a/utilities/cameragui/devices/gpcamera.cpp b/utilities/cameragui/devices/gpcamera.cpp index 22e873a..a98e0a2 100644 --- a/utilities/cameragui/devices/gpcamera.cpp +++ b/utilities/cameragui/devices/gpcamera.cpp @@ -1329,10 +1329,19 @@ bool GPCamera::uploadItem(const QString& folder, const QString& itemName, const d->status = 0; d->status = new GPStatus; +#ifdef HAVE_GPHOTO25 errorCode = gp_camera_folder_put_file(d->camera, QFile::encodeName(folder).constData(), + QFile::encodeName(itemName), + GP_FILE_TYPE_NORMAL, cfile, d->status->context); +#else + errorCode = gp_camera_folder_put_file(d->camera, + QFile::encodeName(folder).constData(), + cfile, + d->status->context); +#endif if (errorCode != GP_OK) { @@ -1651,7 +1660,13 @@ void GPCamera::getSupportedPorts(QStringList& plist) for (int i = 0 ; i < numPorts ; ++i) { gp_port_info_list_get_info(list, i, &info); +#ifdef HAVE_GPHOTO25 + char *xpath; + gp_port_info_get_name (info, &xpath); + plist.append(xpath); +#else plist.append(info.path); +#endif } } -- 1.7.10.4