tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

FindLCMS2.cmake (2063B)


      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 find_package(PkgConfig QUIET)
      7 if (PkgConfig_FOUND)
      8  pkg_check_modules(PC_LCMS2 QUIET libLCMS2)
      9  set(LCMS2_VERSION ${PC_LCMS2_VERSION})
     10 endif ()
     11 
     12 find_path(LCMS2_INCLUDE_DIR
     13  NAMES lcms2.h
     14  HINTS ${PC_LCMS2_INCLUDEDIR} ${PC_LCMS2_INCLUDE_DIRS}
     15 )
     16 
     17 find_library(LCMS2_LIBRARY
     18  NAMES ${LCMS2_NAMES} lcms2 liblcms2 lcms-2 liblcms-2
     19  HINTS ${PC_LCMS2_LIBDIR} ${PC_LCMS2_LIBRARY_DIRS}
     20 )
     21 
     22 if (LCMS2_INCLUDE_DIR AND NOT LCMS_VERSION)
     23    file(READ ${LCMS2_INCLUDE_DIR}/lcms2.h LCMS2_VERSION_CONTENT)
     24    string(REGEX MATCH "#define[ \t]+LCMS_VERSION[ \t]+([0-9]+)[ \t]*\n" LCMS2_VERSION_MATCH ${LCMS2_VERSION_CONTENT})
     25    if (LCMS2_VERSION_MATCH)
     26        string(SUBSTRING ${CMAKE_MATCH_1} 0 1 LCMS2_VERSION_MAJOR)
     27        string(SUBSTRING ${CMAKE_MATCH_1} 1 2 LCMS2_VERSION_MINOR)
     28        set(LCMS2_VERSION "${LCMS2_VERSION_MAJOR}.${LCMS2_VERSION_MINOR}")
     29    endif ()
     30 endif ()
     31 
     32 include(FindPackageHandleStandardArgs)
     33 find_package_handle_standard_args(LCMS2
     34  FOUND_VAR LCMS2_FOUND
     35  REQUIRED_VARS LCMS2_LIBRARY LCMS2_INCLUDE_DIR
     36  VERSION_VAR LCMS2_VERSION
     37 )
     38 
     39 if (LCMS2_LIBRARY AND NOT TARGET lcms2)
     40  add_library(lcms2 INTERFACE IMPORTED GLOBAL)
     41 
     42  if(CMAKE_VERSION VERSION_LESS "3.13.5")
     43    set_property(TARGET lcms2 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${LCMS2_INCLUDE_DIR})
     44    target_link_libraries(lcms2 INTERFACE ${LCMS2_LIBRARY})
     45    set_property(TARGET lcms2 PROPERTY INTERFACE_COMPILE_OPTIONS ${PC_LCMS2_CFLAGS_OTHER})
     46  else()
     47    target_include_directories(lcms2 INTERFACE ${LCMS2_INCLUDE_DIR})
     48    target_link_libraries(lcms2 INTERFACE ${LCMS2_LIBRARY})
     49    target_link_options(lcms2 INTERFACE ${PC_LCMS2_LDFLAGS_OTHER})
     50    target_compile_options(lcms2 INTERFACE ${PC_LCMS2_CFLAGS_OTHER})
     51  endif()
     52 endif()
     53 
     54 mark_as_advanced(LCMS2_INCLUDE_DIR LCMS2_LIBRARY)
     55 
     56 if (LCMS2_FOUND)
     57    set(LCMS2_LIBRARIES ${LCMS2_LIBRARY})
     58    set(LCMS2_INCLUDE_DIRS ${LCMS2_INCLUDE_DIR})
     59 endif ()