libjxl

FORK: libjxl patches used on blog
git clone https://git.neptards.moe/blog/libjxl.git
Log | Files | Refs | Submodules | 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 ()