fix: Use PkgConfig for WebP and WebM (#1400)

This commit is contained in:
Craig Andrews 2026-05-14 12:31:10 -04:00 committed by GitHub
parent 57ff2eb0f4
commit eeac950b44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -106,7 +106,8 @@ if(SD_WEBP)
"Or link against system library:\n cmake (...) -DSD_USE_SYSTEM_WEBP=ON") "Or link against system library:\n cmake (...) -DSD_USE_SYSTEM_WEBP=ON")
endif() endif()
if(SD_USE_SYSTEM_WEBP) if(SD_USE_SYSTEM_WEBP)
find_package(WebP REQUIRED) find_package(WebP)
if(WebP_FOUND)
add_library(webp ALIAS WebP::webp) add_library(webp ALIAS WebP::webp)
# libwebp CMake target naming is not consistent across versions/distros. # libwebp CMake target naming is not consistent across versions/distros.
# Some export WebP::libwebpmux, others export WebP::webpmux. # Some export WebP::libwebpmux, others export WebP::webpmux.
@ -120,6 +121,14 @@ if(SD_WEBP)
"Expected WebP::libwebpmux or WebP::webpmux." "Expected WebP::libwebpmux or WebP::webpmux."
) )
endif() endif()
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(WebP REQUIRED IMPORTED_TARGET GLOBAL libwebp)
pkg_check_modules(WebPMux REQUIRED IMPORTED_TARGET GLOBAL libwebpmux)
link_libraries(PkgConfig::WebP)
link_libraries(PkgConfig::WebPMux)
add_library(libwebpmux ALIAS PkgConfig::WebPMux)
endif()
endif() endif()
endif() endif()
@ -133,6 +142,13 @@ if(SD_WEBM)
"Or link against system library:\n cmake (...) -DSD_USE_SYSTEM_WEBM=ON") "Or link against system library:\n cmake (...) -DSD_USE_SYSTEM_WEBM=ON")
endif() endif()
if(SD_USE_SYSTEM_WEBM) if(SD_USE_SYSTEM_WEBM)
find_package(PkgConfig)
if(PkgConfig_FOUND)
pkg_check_modules(WebM REQUIRED IMPORTED_TARGET GLOBAL libwebm)
endif()
if(PkgConfig_FOUND AND WebM_FOUND)
link_libraries(PkgConfig::WebM)
else()
find_path(WEBM_INCLUDE_DIR find_path(WEBM_INCLUDE_DIR
NAMES mkvmuxer/mkvmuxer.h mkvparser/mkvparser.h common/webmids.h NAMES mkvmuxer/mkvmuxer.h mkvparser/mkvparser.h common/webmids.h
PATH_SUFFIXES webm PATH_SUFFIXES webm
@ -146,6 +162,7 @@ if(SD_WEBM)
IMPORTED_LOCATION "${WEBM_LIBRARY}" IMPORTED_LOCATION "${WEBM_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${WEBM_INCLUDE_DIR}") INTERFACE_INCLUDE_DIRECTORIES "${WEBM_INCLUDE_DIR}")
endif() endif()
endif()
endif() endif()
set(SD_LIB stable-diffusion) set(SD_LIB stable-diffusion)