summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorMartin Reboredo <yakoyoku@gmail.com>2021-08-21 00:36:36 -0300
committerMartin Reboredo <yakoyoku@gmail.com>2021-08-21 00:41:17 -0300
commit1a22921e8c2aed3cc0d412a0b41d4642c5a92c1e (patch)
tree3479761194800590a5d6b72dd30e878c29734721 /cmake
parent060026c1f5047b39baa3dcaf2d49e8053dfa371b (diff)
downloadlibgd-1a22921e8c2aed3cc0d412a0b41d4642c5a92c1e.tar.gz
Enforce minimum libheif to 1.7.0
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}