1 # Copyright (c) the JPEG XL Project Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style
4 # license that can be found in the LICENSE file.
6 set(brlibs brotlicommon brotlienc brotlidec)
8 find_package(PkgConfig QUIET)
10 foreach(brlib IN ITEMS ${brlibs})
11 string(TOUPPER "${brlib}" BRPREFIX)
12 pkg_check_modules("PC_${BRPREFIX}" lib${brlib})
16 find_path(BROTLI_INCLUDE_DIR
18 HINTS ${PC_BROTLICOMMON_INCLUDEDIR} ${PC_BROTLICOMMON_INCLUDE_DIRS}
21 foreach(brlib IN ITEMS ${brlibs})
22 string(TOUPPER "${brlib}" BRPREFIX)
23 find_library(${BRPREFIX}_LIBRARY
24 NAMES ${${BRPREFIX}_NAMES} ${brlib}
25 HINTS ${PC_${BRPREFIX}_LIBDIR} ${PC_${BRPREFIX}_LIBRARY_DIRS}
28 if (${BRPREFIX}_LIBRARY AND NOT TARGET ${brlib})
29 if(CMAKE_VERSION VERSION_LESS "3.13.5")
30 add_library(${brlib} INTERFACE IMPORTED GLOBAL)
31 set_property(TARGET ${brlib} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${BROTLI_INCLUDE_DIR})
32 target_link_libraries(${brlib} INTERFACE ${${BRPREFIX}_LIBRARY})
33 set_property(TARGET ${brlib} PROPERTY INTERFACE_COMPILE_OPTIONS ${PC_${BRPREFIX}_CFLAGS_OTHER})
35 add_library(${brlib} INTERFACE IMPORTED GLOBAL)
36 target_include_directories(${brlib}
37 INTERFACE ${BROTLI_INCLUDE_DIR})
38 target_link_libraries(${brlib}
39 INTERFACE ${${BRPREFIX}_LIBRARY})
40 target_link_options(${brlib}
41 INTERFACE ${PC_${BRPREFIX}_LDFLAGS_OTHER})
42 target_compile_options(${brlib}
43 INTERFACE ${PC_${BRPREFIX}_CFLAGS_OTHER})
48 if (BROTLICOMMON_FOUND AND BROTLIENC_FOUND AND BROTLIDEC_FOUND)
54 include(FindPackageHandleStandardArgs)
55 find_package_handle_standard_args(Brotli
56 FOUND_VAR Brotli_FOUND
62 VERSION_VAR Brotli_VERSION
73 set(Brotli_LIBRARIES ${BROTLICOMMON_LIBRARY} ${BROTLIENC_LIBRARY} ${BROTLIDEC_LIBRARY})
74 set(Brotli_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})