summaryrefslogtreecommitdiffstats
path: root/cmake/FindWrapBrotli.cmake
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2020-05-06 18:24:07 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2020-08-06 20:56:42 +0200
commitad1a5bf63fa63532c3267d4f365286dc78288651 (patch)
treea7f026b0397f95e1e2a44ce8acd61b60e3c59e51 /cmake/FindWrapBrotli.cmake
parentaf1544bda242d02690bd092f1d1ed7ca57659529 (diff)
QDecompressHelper: Add brotli support
Task-number: QTBUG-83269 Change-Id: If23b098ee76a4892e4c2c6ce5c635688d8d9138d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'cmake/FindWrapBrotli.cmake')
-rw-r--r--cmake/FindWrapBrotli.cmake43
1 files changed, 43 insertions, 0 deletions
diff --git a/cmake/FindWrapBrotli.cmake b/cmake/FindWrapBrotli.cmake
new file mode 100644
index 0000000000..e01deee6e3
--- /dev/null
+++ b/cmake/FindWrapBrotli.cmake
@@ -0,0 +1,43 @@
+if(TARGET WrapBrotli::WrapBrotliDec)
+ set(WrapBrotli_FOUND ON)
+ return()
+endif()
+
+# From VCPKG
+find_package(unofficial-brotli CONFIG QUIET)
+if (unofficial-brotli_FOUND)
+ add_library(WrapBrotli::WrapBrotliDec INTERFACE IMPORTED)
+ target_link_libraries(WrapBrotli::WrapBrotliDec INTERFACE unofficial::brotli::brotlidec)
+
+ add_library(WrapBrotli::WrapBrotliEnc INTERFACE IMPORTED)
+ target_link_libraries(WrapBrotli::WrapBrotliEnc INTERFACE unofficial::brotli::brotlienc)
+
+ add_library(WrapBrotli::WrapBrotliCommon INTERFACE IMPORTED)
+ target_link_libraries(WrapBrotli::WrapBrotliCommon INTERFACE unofficial::brotli::brotlicommon)
+
+ set(WrapBrotli_FOUND ON)
+else()
+ find_package(PkgConfig QUIET)
+ if (PKG_CONFIG_FOUND)
+ pkg_check_modules(libbrotlidec QUIET libbrotlidec IMPORTED_TARGET)
+ if (libbrotlidec_FOUND)
+ add_library(WrapBrotli::WrapBrotliDec INTERFACE IMPORTED)
+ target_link_libraries(WrapBrotli::WrapBrotliDec INTERFACE PkgConfig::libbrotlidec)
+ set(WrapBrotli_FOUND ON)
+ endif()
+
+ pkg_check_modules(libbrotlienc QUIET libbrotlienc IMPORTED_TARGET)
+ if (libbrotlienc_FOUND)
+ add_library(WrapBrotli::WrapBrotliEnc INTERFACE IMPORTED)
+ target_link_libraries(WrapBrotli::WrapBrotliEnc INTERFACE PkgConfig::libbrotlienc)
+ set(WrapBrotli_FOUND ON)
+ endif()
+
+ pkg_check_modules(libbrotlicommon QUIET libbrotlicommon IMPORTED_TARGET)
+ if (libbrotlicommon_FOUND)
+ add_library(WrapBrotli::WrapBrotliCommon INTERFACE IMPORTED)
+ target_link_libraries(WrapBrotli::WrapBrotliCommon INTERFACE PkgConfig::libbrotlicommon)
+ set(WrapBrotli_FOUND ON)
+ endif()
+ endif()
+endif()