libjxl

FORK: libjxl patches used on blog
git clone https://git.neptards.moe/blog/libjxl.git
Log | Files | Refs | Submodules | README | LICENSE

FindBrotli.cmake (2259B)


      1 # Copyright (c) the JPEG XL Project Authors. All rights reserved.
      2 #
      3 # Use of this source code is governed by a BSD-style
      4 # license that can be found in the LICENSE file.
      5 
      6 set(brlibs brotlicommon brotlienc brotlidec)
      7 
      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()
     15 
     16 find_path(BROTLI_INCLUDE_DIR
     17   NAMES brotli/decode.h
     18   HINTS ${PC_BROTLICOMMON_INCLUDEDIR} ${PC_BROTLICOMMON_INCLUDE_DIRS}
     19 )
     20 
     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   )
     27 
     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()
     47 
     48 if (BROTLICOMMON_FOUND AND BROTLIENC_FOUND AND BROTLIDEC_FOUND)
     49   set(Brotli_FOUND ON)
     50 else ()
     51   set(Brotli_FOUND OFF)
     52 endif()
     53 
     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
     63 )
     64 
     65 mark_as_advanced(
     66   BROTLI_INCLUDE_DIR
     67   BROTLICOMMON_LIBRARY
     68   BROTLIENC_LIBRARY
     69   BROTLIDEC_LIBRARY
     70 )
     71 
     72 if (Brotli_FOUND)
     73   set(Brotli_LIBRARIES ${BROTLICOMMON_LIBRARY} ${BROTLIENC_LIBRARY} ${BROTLIDEC_LIBRARY})
     74   set(Brotli_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
     75 endif()