summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindHEIF.cmake22
1 files changed, 21 insertions, 1 deletions
diff --git a/cmake/modules/FindHEIF.cmake b/cmake/modules/FindHEIF.cmake
index dfb7d76..70f14c2 100644
--- a/cmake/modules/FindHEIF.cmake
+++ b/cmake/modules/FindHEIF.cmake
@@ -43,7 +43,7 @@ SET(HEIF_FOUND "NO")
# in the FIND_PATH() and FIND_LIBRARY() calls
if( NOT WIN32 )
find_package(PkgConfig)
- pkg_check_modules(HEIF_PKG libheif QUIET)
+ pkg_check_modules(HEIF_PKG libheif>=1.7.0 QUIET)
endif( NOT WIN32 )
FIND_PATH(HEIF_INCLUDE_DIR NAMES libheif/heif.h
@@ -54,6 +54,26 @@ FIND_PATH(HEIF_INCLUDE_DIR NAMES libheif/heif.h
${HEIF_PKG_INCLUDE_DIRS} # Generated by pkg-config
)
+IF (NOT HEIF_PKG_FOUND)
+ INCLUDE(CheckCSourceCompiles)
+ CHECK_C_SOURCE_COMPILES(
+ "
+ #include <libheif/heif.h>
+
+ #if !LIBHEIF_HAVE_VERSION(1, 7, 0)
+ #error \"libheif version is too old\"
+ #endif
+
+ int main() { return 0; }
+ "
+ HEIF_HDR_TO_8BIT
+ )
+ENDIF (NOT HEIF_PKG_FOUND)
+
+IF (NOT HEIF_HDR_TO_8BIT AND NOT HEIF_PKG_FOUND)
+ MESSAGE(FATAL_ERROR "libheif version found is too old")
+ENDIF (NOT HEIF_HDR_TO_8BIT AND NOT HEIF_PKG_FOUND)
+
SET(HEIF_NAMES ${HEIF_NAMES} heif ${HEIF_PKG_LIBRARY})
FIND_LIBRARY(HEIF_LIBRARY
NAMES ${HEIF_NAMES}