1+ # Macro to check pkg-config modules and produce a full-path library list
2+ macro (pkg_check_modules_fullpath_libs PREFIX MODULE_NAME)
3+ # Call pkg_check_modules
4+ pkg_check_modules(${PREFIX} REQUIRED IMPORTED_TARGET ${MODULE_NAME} )
5+ if (${PREFIX} _FOUND)
6+ set (${PREFIX} _FULLPATH_LIBRARIES "" PARENT_SCOPE)
7+ foreach (lib ${${PREFIX} _LIBRARIES})
8+ set (lib_path "" )
9+ set (lib_prefix "" )
10+ set (lib_ext "" )
11+ if (WIN32 )
12+ set (lib_ext ".lib" )
13+ else ()
14+ set (lib_prefix "lib" )
15+ set (lib_ext ".a" )
16+ endif ()
17+ # Skip system libraries like 'm' on Windows
18+ if (WIN32 AND (lib STREQUAL "m" ))
19+ continue ()
20+ endif ()
21+ # If lib already has a path, use as is
22+ if (EXISTS "${lib_prefix}${lib}${lib_ext} " )
23+ set (lib_path "${lib_prefix}${lib}${lib_ext} " )
24+ else ()
25+ foreach (dir ${${PREFIX} _LIBRARY_DIRS})
26+ if (EXISTS "${dir} /${lib_prefix}${lib}${lib_ext} " )
27+ set (lib_path "${dir} /${lib_prefix}${lib}${lib_ext} " )
28+ break ()
29+ endif ()
30+ endforeach ()
31+ endif ()
32+ if (NOT lib_path STREQUAL "" )
33+ list (APPEND ${PREFIX} _FULLPATH_LIBRARIES "${lib_path} " )
34+ else ()
35+ list (APPEND ${PREFIX} _FULLPATH_LIBRARIES "${lib} " )
36+ endif ()
37+ endforeach ()
38+ set (${PREFIX} _FULLPATH_LIBRARIES "${${PREFIX} _FULLPATH_LIBRARIES}" PARENT_SCOPE)
39+ message (STATUS "Found ${MODULE_NAME} : ${${PREFIX} _VERSION} libs: ${${PREFIX} _FULLPATH_LIBRARIES}" )
40+ else ()
41+ set (${PREFIX} _FULLPATH_LIBRARIES "" PARENT_SCOPE)
42+ message (STATUS "${MODULE_NAME} not found, support will be disabled" )
43+ endif ()
44+ endmacro ()
45+
146# Find required packages
247FIND_PACKAGE (PNG QUIET )
348if (PNG_FOUND)
@@ -15,6 +60,14 @@ if(JPEG_FOUND)
1560else ()
1661 SET (JPEG_LIBRARIES "" )
1762endif ()
63+ FIND_PACKAGE (PkgConfig REQUIRED)
64+ pkg_check_modules_fullpath_libs(JPEGXL libjxl)
65+ if (JPEGXL_FOUND)
66+ SET (_USE_JXL TRUE CACHE INTERNAL "" )
67+ set (JPEGXL_LIBRARIES ${JPEGXL_FULLPATH_LIBRARIES} )
68+ else ()
69+ SET (JPEGXL_LIBRARIES "" )
70+ endif ()
1871FIND_PACKAGE (TIFF QUIET )
1972if (TIFF_FOUND)
2073 INCLUDE_DIRECTORIES (${TIFF_INCLUDE_DIR} )
@@ -38,7 +91,7 @@ IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.16.0)
3891endif ()
3992
4093# Link its dependencies
41- TARGET_LINK_LIBRARIES (IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${EXIV2_LIBS} )
94+ TARGET_LINK_LIBRARIES (IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${JPEGXL_LIBRARIES} ${ TIFF_LIBRARIES} ${EXIV2_LIBS} )
4295
4396# Install
4497SET_TARGET_PROPERTIES (IO PROPERTIES
0 commit comments