From a96975878a0f6e375fb4bdc08b7d97cf40f183ce Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Fri, 31 Oct 2025 16:48:56 +0100 Subject: [PATCH] CMake: Use the OS version of TIFF, JPEG and HDF5 libraries --- CMakeLists.txt | 13 +------------ preview/CMakeLists.txt | 38 +++----------------------------------- writer/CMakeLists.txt | 5 ++++- 3 files changed, 8 insertions(+), 48 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9eae92be..6615f6b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,17 +88,6 @@ CHECK_INCLUDE_FILE(numa.h HAS_NUMA_H) include(FetchContent) -FetchContent_Declare(tiff - GIT_REPOSITORY https://github.com/fleon-psi/libtiff - GIT_TAG v4.6.0 - EXCLUDE_FROM_ALL) - -FetchContent_Declare(hdf5 - GIT_REPOSITORY https://github.com/HDFGroup/hdf5/ - GIT_TAG hdf5_1.14.5 - GIT_SHALLOW 1 - EXCLUDE_FROM_ALL) - SET(PISTACHE_USE_CONTENT_ENCODING_DEFLATE ON) SET(PISTACHE_BUILD_TESTS OFF) SET(PISTACHE_USE_SSL ON) @@ -136,7 +125,7 @@ FetchContent_Declare( EXCLUDE_FROM_ALL ) -FetchContent_MakeAvailable(pistache_http zstd sls_detector_package catch2 hdf5 tiff) +FetchContent_MakeAvailable(pistache_http zstd sls_detector_package catch2) ADD_SUBDIRECTORY(jungfrau) ADD_SUBDIRECTORY(compression) diff --git a/preview/CMakeLists.txt b/preview/CMakeLists.txt index daab190b..01ede10e 100644 --- a/preview/CMakeLists.txt +++ b/preview/CMakeLists.txt @@ -1,37 +1,7 @@ include(ExternalProject) -# Taken from https://github.com/dacap/aseprite/blob/422d74a271e43c6f8846c09bed6a993b1d097ff1/cmake/FindJpegTurbo.cmake - -ExternalProject_Add(libjpeg-turbo-project - GIT_REPOSITORY https://github.com/libjpeg-turbo/libjpeg-turbo - GIT_TAG 3.0.4 - PREFIX "${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo" - INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo" - BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jpeg${LIBJPEG_TURBO_STATIC_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" - CMAKE_CACHE_ARGS - -DENABLE_SHARED:BOOL=OFF - -DENABLE_STATIC:BOOL=ON - -DWITH_ARITH_DEC:BOOL=ON - -DWITH_ARITH_ENC:BOOL=ON - -DWITH_JPEG8:BOOL=OFF - -DWITH_JPEG7:BOOL=OFF - -DWITH_TURBOJPEG:BOOL=OFF - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX:PATH= - -DCMAKE_INSTALL_LIBDIR:PATH=/lib) - -ExternalProject_Get_Property(libjpeg-turbo-project install_dir) -SET(LIBJPEG_TURBO_INCLUDE_DIRS "${install_dir}/include") -SET(LIBJPEG_TURBO_LIBRARY "${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jpeg${LIBJPEG_TURBO_STATIC_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") - -# Create the directory so changing INTERFACE_INCLUDE_DIRECTORIES doesn't fail -FILE(MAKE_DIRECTORY ${LIBJPEG_TURBO_INCLUDE_DIRS}) - -ADD_LIBRARY(libjpeg-turbo STATIC IMPORTED) -SET_TARGET_PROPERTIES(libjpeg-turbo PROPERTIES - IMPORTED_LOCATION ${LIBJPEG_TURBO_LIBRARY} - INTERFACE_INCLUDE_DIRECTORIES ${LIBJPEG_TURBO_INCLUDE_DIRS}) -ADD_DEPENDENCIES(libjpeg-turbo libjpeg-turbo-project) +find_package(JPEG REQUIRED) +find_package(TIFF REQUIRED COMPONENTS CXX) ADD_LIBRARY(JFJochPreview STATIC JFJochTIFF.cpp JFJochTIFF.h @@ -45,7 +15,5 @@ ADD_LIBRARY(JFJochPreview STATIC ) TARGET_LINK_LIBRARIES(JFJochPreview PUBLIC JFJochZMQ JFJochCommon CBORStream2FrameSerialize) -TARGET_LINK_LIBRARIES(JFJochPreview PUBLIC tiff tiffxx) -TARGET_LINK_LIBRARIES(JFJochPreview PUBLIC libjpeg-turbo) -TARGET_LINK_LIBRARIES(JFJochPreview PUBLIC png) +TARGET_LINK_LIBRARIES(JFJochPreview PUBLIC JPEG::JPEG TIFF::TIFF TIFF::CXX) diff --git a/writer/CMakeLists.txt b/writer/CMakeLists.txt index 6a75deed..b7bd0476 100644 --- a/writer/CMakeLists.txt +++ b/writer/CMakeLists.txt @@ -1,5 +1,8 @@ +SET(HDF5_USE_STATIC_LIBRARIES TRUE) +FIND_PACKAGE(HDF5 1.10 REQUIRED) + ADD_LIBRARY(JFJochHDF5Wrappers STATIC HDF5Objects.cpp HDF5Objects.h ../compression/bitshuffle/bshuf_h5filter.c) -TARGET_LINK_LIBRARIES(JFJochHDF5Wrappers Compression hdf5-static) +TARGET_LINK_LIBRARIES(JFJochHDF5Wrappers Compression HDF5::HDF5) ADD_LIBRARY(JFJochWriter STATIC HDF5DataFile.h HDF5DataFile.cpp