# Needed to find libheif/heif_version.h while compiling the library include_directories(${libheif_BINARY_DIR} ${libheif_SOURCE_DIR}/libheif/api ${libheif_SOURCE_DIR}/libheif) add_library(heifio STATIC decoder.h decoder_y4m.cc decoder_y4m.h encoder.h encoder.cc encoder_y4m.h encoder_y4m.cc exif.h exif.cc stubs.cc) target_link_libraries(heifio PRIVATE heif) set_target_properties(heifio PROPERTIES VERSION ${PROJECT_VERSION}) target_compile_definitions(heifio PUBLIC LIBHEIF_EXPORTS HAVE_VISIBILITY) find_package(TIFF) if (TIFF_FOUND) target_sources(heifio PRIVATE decoder_tiff.cc decoder_tiff.h encoder_tiff.h encoder_tiff.cc) target_link_libraries(heifio PRIVATE TIFF::TIFF) target_compile_definitions(heifio PUBLIC HAVE_LIBTIFF=1) endif() find_package(JPEG) if (TARGET JPEG::JPEG) target_compile_definitions(heifio PUBLIC -DHAVE_LIBJPEG=1) include(CheckCXXSourceCompiles) # this is needed for CheckCXXSourceCompiles set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES}) set(CMAKE_REQUIRED_INCLUDES ${JPEG_INCLUDE_DIRS}) check_cxx_source_compiles(" #include <stddef.h> #include <stdio.h> #include <jpeglib.h> int main() { jpeg_write_icc_profile(NULL, NULL, 0); return 0; } " HAVE_JPEG_WRITE_ICC_PROFILE) unset(CMAKE_REQUIRED_LIBRARIES) unset(CMAKE_REQUIRED_INCLUDES) if (HAVE_JPEG_WRITE_ICC_PROFILE) add_definitions(-DHAVE_JPEG_WRITE_ICC_PROFILE=1) endif () target_link_libraries(heifio PRIVATE JPEG::JPEG) target_sources(heifio PRIVATE encoder_jpeg.cc encoder_jpeg.h) target_sources(heifio PRIVATE decoder.h decoder_jpeg.cc decoder_jpeg.h) endif () find_package(PNG) set(PNG_FOUND ${PNG_FOUND} PARENT_SCOPE) if (TARGET PNG::PNG) target_compile_definitions(heifio PUBLIC -DHAVE_LIBPNG=1) target_link_libraries(heifio PRIVATE PNG::PNG) target_sources(heifio PRIVATE encoder_png.cc encoder_png.h) target_sources(heifio PRIVATE decoder_png.cc decoder_png.h) endif () message("") message("=== Active input formats for heif-enc ===") if (JPEG_FOUND) message("JPEG: active") else () message("JPEG: ------ (libjpeg not found)") endif () if (PNG_FOUND) message("PNG: active") else () message("PNG: ------ (libpng not found)") endif () if (TIFF_FOUND) message("TIFF: active") else () message("TIFF: ------ (libtiff not found)") endif () message("")