Backed out changeset 7ea2efe7df94 (bug 1832837) for causing /fullscreen/api wpt unexp...
[gecko.git] / third_party / jpeg-xl / cmake / FindBrotli.cmake
blob9fb78e47d89646f1e3eef30542e72538268dcd0c
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)
9 if (PkgConfig_FOUND)
10   foreach(brlib IN ITEMS ${brlibs})
11     string(TOUPPER "${brlib}" BRPREFIX)
12     pkg_check_modules("PC_${BRPREFIX}" lib${brlib})
13   endforeach()
14 endif()
16 find_path(BROTLI_INCLUDE_DIR
17   NAMES brotli/decode.h
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}
26   )
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})
34     else()
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})
44     endif()
45   endif()
46 endforeach()
48 if (BROTLICOMMON_FOUND AND BROTLIENC_FOUND AND BROTLIDEC_FOUND)
49   set(Brotli_FOUND ON)
50 else ()
51   set(Brotli_FOUND OFF)
52 endif()
54 include(FindPackageHandleStandardArgs)
55 find_package_handle_standard_args(Brotli
56   FOUND_VAR Brotli_FOUND
57   REQUIRED_VARS
58     BROTLI_INCLUDE_DIR
59     BROTLICOMMON_LIBRARY
60     BROTLIENC_LIBRARY
61     BROTLIDEC_LIBRARY
62   VERSION_VAR Brotli_VERSION
65 mark_as_advanced(
66   BROTLI_INCLUDE_DIR
67   BROTLICOMMON_LIBRARY
68   BROTLIENC_LIBRARY
69   BROTLIDEC_LIBRARY
72 if (Brotli_FOUND)
73   set(Brotli_LIBRARIES ${BROTLICOMMON_LIBRARY} ${BROTLIENC_LIBRARY} ${BROTLIDEC_LIBRARY})
74   set(Brotli_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
75 endif()