File Update-FindExiv2.cmake.patch of Package kdelibs4
diff -ur a/cmake/modules/FindExiv2.cmake b/cmake/modules/FindExiv2.cmake
--- a/cmake/modules/FindExiv2.cmake 2013-02-05 22:34:52.000000000 +0100
+++ b/cmake/modules/FindExiv2.cmake 2019-01-29 07:56:20.441068388 +0100
@@ -57,15 +57,20 @@
# Get the version number from exiv2/version.hpp and store it in the cache:
if(EXIV2_INCLUDE_DIR AND NOT EXIV2_VERSION)
- file(READ ${EXIV2_INCLUDE_DIR}/exiv2/version.hpp EXIV2_VERSION_CONTENT)
- string(REGEX MATCH "#define EXIV2_MAJOR_VERSION +\\( *([0-9]+) *\\)" _dummy "${EXIV2_VERSION_CONTENT}")
- set(EXIV2_VERSION_MAJOR "${CMAKE_MATCH_1}")
-
- string(REGEX MATCH "#define EXIV2_MINOR_VERSION +\\( *([0-9]+) *\\)" _dummy "${EXIV2_VERSION_CONTENT}")
- set(EXIV2_VERSION_MINOR "${CMAKE_MATCH_1}")
-
- string(REGEX MATCH "#define EXIV2_PATCH_VERSION +\\( *([0-9]+) *\\)" _dummy "${EXIV2_VERSION_CONTENT}")
- set(EXIV2_VERSION_PATCH "${CMAKE_MATCH_1}")
+ # With exiv >= 0.27, the version #defines are in exv_conf.h instead of version.hpp
+ foreach(_exiv2_version_file "version.hpp" "exv_conf.h")
+ if(EXISTS "${EXIV2_INCLUDE_DIR}/exiv2/${_exiv2_version_file}")
+ file(READ "${EXIV2_INCLUDE_DIR}/exiv2/${_exiv2_version_file}" _exiv_version_file_content)
+ string(REGEX MATCH "#define EXIV2_MAJOR_VERSION[ ]+\\([0-9]+\\)" EXIV2_MAJOR_VERSION_MATCH ${_exiv_version_file_content})
+ string(REGEX MATCH "#define EXIV2_MINOR_VERSION[ ]+\\([0-9]+\\)" EXIV2_MINOR_VERSION_MATCH ${_exiv_version_file_content})
+ string(REGEX MATCH "#define EXIV2_PATCH_VERSION[ ]+\\([0-9]+\\)" EXIV2_PATCH_VERSION_MATCH ${_exiv_version_file_content})
+ if(EXIV2_MAJOR_VERSION_MATCH)
+ string(REGEX REPLACE ".*_MAJOR_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_VERSION_MAJOR ${EXIV2_MAJOR_VERSION_MATCH})
+ string(REGEX REPLACE ".*_MINOR_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_VERSION_MINOR ${EXIV2_MINOR_VERSION_MATCH})
+ string(REGEX REPLACE ".*_PATCH_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_VERSION_PATCH ${EXIV2_PATCH_VERSION_MATCH})
+ endif()
+ endif()
+ endforeach()
set(EXIV2_VERSION "${EXIV2_VERSION_MAJOR}.${EXIV2_VERSION_MINOR}.${EXIV2_VERSION_PATCH}" CACHE STRING "Version number of Exiv2" FORCE)
endif(EXIV2_INCLUDE_DIR AND NOT EXIV2_VERSION)