2525#
2626# Input variables:
2727#
28- # - `BROTLI_INCLUDE_DIR`: The brotli include directory.
29- # - `BROTLICOMMON_LIBRARY`: Path to `brotlicommon` library.
30- # - `BROTLIDEC_LIBRARY`: Path to `brotlidec` library.
28+ # - `BROTLI_INCLUDE_DIR`: Absolute path to brotli include directory.
29+ # - `BROTLICOMMON_LIBRARY`: Absolute path to `brotlicommon` library.
30+ # - `BROTLIDEC_LIBRARY`: Absolute path to `brotlidec` library.
31+ # - `BROTLI_USE_STATIC_LIBS`: Configure for static brotli libraries.
3132#
32- # Result variables :
33+ # Defines :
3334#
34- # - `BROTLI_FOUND`: System has brotli.
35- # - `BROTLI_INCLUDE_DIRS`: The brotli include directories.
36- # - `BROTLI_LIBRARIES`: The brotli library names.
37- # - `BROTLI_LIBRARY_DIRS`: The brotli library directories.
38- # - `BROTLI_PC_REQUIRES`: The brotli pkg-config packages.
39- # - `BROTLI_CFLAGS`: Required compiler flags.
40- # - `BROTLI_VERSION`: Version of brotli.
35+ # - `BROTLI_FOUND`: System has brotli.
36+ # - `BROTLI_VERSION`: Version of brotli.
37+ # - `CURL::brotli`: brotli library target.
4138
42- set (BROTLI_PC_REQUIRES "libbrotlidec" "libbrotlicommon" ) # order is significant: brotlidec then brotlicommon
39+ set (_brotli_pc_requires "libbrotlidec" "libbrotlicommon" ) # order is significant: brotlidec then brotlicommon
4340
4441if (CURL_USE_PKGCONFIG AND
4542 NOT DEFINED BROTLI_INCLUDE_DIR AND
4643 NOT DEFINED BROTLICOMMON_LIBRARY AND
4744 NOT DEFINED BROTLIDEC_LIBRARY)
4845 find_package (PkgConfig QUIET )
49- pkg_check_modules (BROTLI ${BROTLI_PC_REQUIRES } )
46+ pkg_check_modules (_brotli ${_brotli_pc_requires } )
5047endif ()
5148
52- if (BROTLI_FOUND )
49+ if (_brotli_FOUND )
5350 set (Brotli_FOUND TRUE )
54- set (BROTLI_VERSION "${BROTLI_libbrotlicommon_VERSION} " )
55- string (REPLACE ";" " " BROTLI_CFLAGS "${BROTLI_CFLAGS} " )
56- message (STATUS "Found Brotli (via pkg-config): ${BROTLI_INCLUDE_DIRS} (found version \" ${BROTLI_VERSION} \" )" )
51+ set (BROTLI_FOUND TRUE )
52+ set (BROTLI_VERSION ${_brotli_libbrotlicommon_VERSION} )
53+ if (BROTLI_USE_STATIC_LIBS)
54+ set (_brotli_CFLAGS "${_brotli_STATIC_CFLAGS} " )
55+ set (_brotli_INCLUDE_DIRS "${_brotli_STATIC_INCLUDE_DIRS} " )
56+ set (_brotli_LIBRARY_DIRS "${_brotli_STATIC_LIBRARY_DIRS} " )
57+ set (_brotli_LIBRARIES "${_brotli_STATIC_LIBRARIES} " )
58+ endif ()
59+ message (STATUS "Found Brotli (via pkg-config): ${_brotli_INCLUDE_DIRS} (found version \" ${BROTLI_VERSION} \" )" )
5760else ()
5861 find_path (BROTLI_INCLUDE_DIR "brotli/decode.h" )
59- find_library (BROTLICOMMON_LIBRARY NAMES "brotlicommon" )
60- find_library (BROTLIDEC_LIBRARY NAMES "brotlidec" )
62+ if (BROTLI_USE_STATIC_LIBS)
63+ find_library (BROTLICOMMON_LIBRARY NAMES "brotlicommon-static" "brotlicommon" )
64+ find_library (BROTLIDEC_LIBRARY NAMES "brotlidec-static" "brotlidec" )
65+ else ()
66+ find_library (BROTLICOMMON_LIBRARY NAMES "brotlicommon" )
67+ find_library (BROTLIDEC_LIBRARY NAMES "brotlidec" )
68+ endif ()
6169
6270 include (FindPackageHandleStandardArgs )
6371 find_package_handle_standard_args (Brotli
@@ -68,9 +76,25 @@ else()
6876 )
6977
7078 if (BROTLI_FOUND)
71- set (BROTLI_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR} )
72- set (BROTLI_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY} )
79+ set (_brotli_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR} )
80+ set (_brotli_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY} )
7381 endif ()
7482
7583 mark_as_advanced (BROTLI_INCLUDE_DIR BROTLIDEC_LIBRARY BROTLICOMMON_LIBRARY )
7684endif ()
85+
86+ if (BROTLI_FOUND)
87+ if (CMAKE_VERSION VERSION_LESS 3.13)
88+ link_directories (${_brotli_LIBRARY_DIRS} )
89+ endif ()
90+
91+ if (NOT TARGET CURL::brotli)
92+ add_library (CURL::brotli INTERFACE IMPORTED )
93+ set_target_properties (CURL::brotli PROPERTIES
94+ INTERFACE_LIBCURL_PC_MODULES "${_brotli_pc_requires} "
95+ INTERFACE_COMPILE_OPTIONS "${_brotli_CFLAGS} "
96+ INTERFACE_INCLUDE_DIRECTORIES "${_brotli_INCLUDE_DIRS} "
97+ INTERFACE_LINK_DIRECTORIES "${_brotli_LIBRARY_DIRS} "
98+ INTERFACE_LINK_LIBRARIES "${_brotli_LIBRARIES} " )
99+ endif ()
100+ endif ()
0 commit comments