@@ -106,19 +106,28 @@ if(SD_WEBP)
106106 "Or link against system library:\n cmake (...) -DSD_USE_SYSTEM_WEBP=ON" )
107107 endif ()
108108 if (SD_USE_SYSTEM_WEBP)
109- find_package (WebP REQUIRED )
110- add_library (webp ALIAS WebP::webp )
111- # libwebp CMake target naming is not consistent across versions/distros.
112- # Some export WebP::libwebpmux, others export WebP::webpmux.
113- if (TARGET WebP::libwebpmux)
114- add_library (libwebpmux ALIAS WebP::libwebpmux )
115- elseif (TARGET WebP::webpmux)
116- add_library (libwebpmux ALIAS WebP::webpmux )
109+ find_package (WebP )
110+ if (WebP_FOUND)
111+ add_library (webp ALIAS WebP::webp )
112+ # libwebp CMake target naming is not consistent across versions/distros.
113+ # Some export WebP::libwebpmux, others export WebP::webpmux.
114+ if (TARGET WebP::libwebpmux)
115+ add_library (libwebpmux ALIAS WebP::libwebpmux )
116+ elseif (TARGET WebP::webpmux)
117+ add_library (libwebpmux ALIAS WebP::webpmux )
118+ else ()
119+ message (FATAL_ERROR
120+ "Could not find a compatible webpmux target in system WebP package. "
121+ "Expected WebP::libwebpmux or WebP::webpmux."
122+ )
123+ endif ()
117124 else ()
118- message (FATAL_ERROR
119- "Could not find a compatible webpmux target in system WebP package. "
120- "Expected WebP::libwebpmux or WebP::webpmux."
121- )
125+ find_package (PkgConfig REQUIRED )
126+ pkg_check_modules (WebP REQUIRED IMPORTED_TARGET GLOBAL libwebp )
127+ pkg_check_modules (WebPMux REQUIRED IMPORTED_TARGET GLOBAL libwebpmux )
128+ link_libraries (PkgConfig::WebP )
129+ link_libraries (PkgConfig::WebPMux )
130+ add_library (libwebpmux ALIAS PkgConfig::WebPMux )
122131 endif ()
123132 endif ()
124133endif ()
@@ -133,18 +142,26 @@ if(SD_WEBM)
133142 "Or link against system library:\n cmake (...) -DSD_USE_SYSTEM_WEBM=ON" )
134143 endif ()
135144 if (SD_USE_SYSTEM_WEBM)
136- find_path (WEBM_INCLUDE_DIR
137- NAMES mkvmuxer/mkvmuxer.h mkvparser/mkvparser.h common/webmids.h
138- PATH_SUFFIXES webm
139- REQUIRED )
140- find_library (WEBM_LIBRARY
141- NAMES webm libwebm
142- REQUIRED )
143-
144- add_library (webm UNKNOWN IMPORTED )
145- set_target_properties (webm PROPERTIES
146- IMPORTED_LOCATION "${WEBM_LIBRARY} "
147- INTERFACE_INCLUDE_DIRECTORIES "${WEBM_INCLUDE_DIR} " )
145+ find_package (PkgConfig )
146+ if (PkgConfig_FOUND)
147+ pkg_check_modules (WebM REQUIRED IMPORTED_TARGET GLOBAL libwebm )
148+ endif ()
149+ if (PkgConfig_FOUND AND WebM_FOUND)
150+ link_libraries (PkgConfig::WebM )
151+ else ()
152+ find_path (WEBM_INCLUDE_DIR
153+ NAMES mkvmuxer/mkvmuxer.h mkvparser/mkvparser.h common/webmids.h
154+ PATH_SUFFIXES webm
155+ REQUIRED )
156+ find_library (WEBM_LIBRARY
157+ NAMES webm libwebm
158+ REQUIRED )
159+
160+ add_library (webm UNKNOWN IMPORTED )
161+ set_target_properties (webm PROPERTIES
162+ IMPORTED_LOCATION "${WEBM_LIBRARY} "
163+ INTERFACE_INCLUDE_DIRECTORIES "${WEBM_INCLUDE_DIR} " )
164+ endif ()
148165 endif ()
149166endif ()
150167
0 commit comments