Warning, /graphics/krita/cmake/modules/FindLCMS2.cmake is written in an unsupported language. File is not indexed.

0001 # Try to find LittleCMS.
0002 # Once done this will define:
0003 #
0004 #  LCMS2_FOUND - system has LittleCMS
0005 #  LCMS2_INCLUDE_DIRS - the LittleCMS include directories
0006 #  LCMS_LIBRARIES - the libraries needed to use LittleCMS
0007 #
0008 # Additionally, if the Fast Float plugin is found, it will define:
0009 #
0010 #  LCMS2_FAST_FLOAT_INCLUDE_DIR - the include dir for lcms2_fast_float.h
0011 #  LCMS2_FAST_FLOAT_LIBRARY - the path of the plugin
0012 #
0013 # This module defines both variables and imported targets.
0014 #
0015 # SPDX-FileCopyrightText: 2021 L. E. Segovia <amy@amyspark.me>
0016 # SPDX-License-Identifier: BSD-3-Clause
0017 #
0018 
0019 include(UsePkgConfig)
0020 pkg_check_modules(LCMS2_PKGCONF QUIET lcms2)
0021 
0022 find_path(LCMS2_INCLUDE_DIR
0023     NAMES lcms2.h
0024     HINTS ${LCMS2_PKGCONF_INCLUDE_DIRS} ${LCMS2_PKGCONF_INCLUDEDIR}
0025     DOC "LittleCMS 2 headers include folder"
0026     PATH_SUFFIXES lcms2 liblcms2
0027 )
0028 
0029 find_path(LCMS2_FAST_FLOAT_INCLUDE_DIR
0030     NAMES lcms2_fast_float.h
0031     HINTS ${LCMS2_PKGCONF_INCLUDE_DIRS} ${LCMS2_PKGCONF_INCLUDEDIR} ${LCMS2_INCLUDE_DIR}
0032     DOC "LittleCMS 2 Fast Float Plugin headers include folder"
0033     PATH_SUFFIXES lcms2 liblcms2
0034 )
0035 
0036 find_library(LCMS2_LIBRARY
0037     NAMES lcms2 liblcms2 lcms-2 liblcms-2
0038     HINTS ${LCMS2_PKGCONF_LIBRARY_DIRS} ${LCMS2_PKGCONF_LIBDIR}
0039     DOC "LittleCMS 2 library"
0040     PATH_SUFFIXES lcms2
0041 )
0042 
0043 find_library(LCMS2_FAST_FLOAT_LIBRARY
0044     NAMES lcms2_fast_float liblcms2_fast_float lcms-2_fast_float liblcms-2_fast_float
0045     HINTS ${LCMS2_PKGCONF_LIBRARY_DIRS} ${LCMS2_PKGCONF_LIBDIR}
0046     DOC "LittleCMS 2 Fast Float Plugin library"
0047     PATH_SUFFIXES lcms2
0048 )
0049 
0050 if(LCMS2_INCLUDE_DIR)
0051     set(lcms2_config_file "${LCMS2_INCLUDE_DIR}/lcms2.h")
0052     if(EXISTS ${lcms2_config_file})
0053         file(STRINGS
0054             ${lcms2_config_file}
0055             TMP
0056             REGEX "#define LCMS_VERSION.*$")
0057         string(REGEX MATCHALL "[0-9.]+" LCMS2_VER_STRING ${TMP})
0058         string(SUBSTRING ${LCMS2_VER_STRING} 0 1 LCMS2_MAJOR_VERSION)
0059         string(SUBSTRING ${LCMS2_VER_STRING} 1 2 LCMS2_MINOR_VERSION)
0060         string(SUBSTRING ${LCMS2_VER_STRING} 3 -1 LCMS2_PATCH_VERSION)
0061         set(LCMS2_VERSION "${LCMS2_MAJOR_VERSION}.${LCMS2_MINOR_VERSION}.${LCMS2_PATCH_VERSION}")
0062     endif()
0063 endif()
0064 
0065 include(FindPackageHandleStandardArgs)
0066 find_package_handle_standard_args(LCMS2
0067   FOUND_VAR LCMS2_FOUND
0068   REQUIRED_VARS
0069     LCMS2_LIBRARY
0070     LCMS2_INCLUDE_DIR
0071   VERSION_VAR LCMS2_VERSION
0072 )
0073 
0074 if(LCMS2_FOUND)
0075     set(LCMS2_LIBRARIES ${LCMS2_LIBRARY})
0076     set(LCMS2_INCLUDE_DIRS ${LCMS2_INCLUDE_DIR})
0077     if(LCMS2_FAST_FLOAT_LIBRARY)
0078         list(APPEND LCMS2_LIBRARIES ${LCMS2_FAST_FLOAT_LIBRARY})
0079     endif()
0080     if(LCMS2_FAST_FLOAT_INCLUDE_DIR)
0081       list(APPEND LCMS2_INCLUDE_DIRS ${LCMS2_FAST_FLOAT_INCLUDE_DIR})
0082       list(REMOVE_DUPLICATES LCMS2_INCLUDE_DIRS)
0083     endif()
0084     if(LCMS2_PKG_CONF_CFLAGS_OTHER)
0085         set(LCMS2_DEFINITIONS ${LCMS2_PKG_CONF_CFLAGS_OTHER})
0086     endif()
0087 endif()
0088 
0089 if(LCMS2_FOUND AND NOT TARGET LCMS2::LCMSFastFloat AND LCMS2_FAST_FLOAT_LIBRARY)
0090   add_library(LCMS2::LCMSFastFloat UNKNOWN IMPORTED)
0091   set_target_properties(LCMS2::LCMSFastFloat PROPERTIES
0092     IMPORTED_LOCATION "${LCMS2_FAST_FLOAT_LIBRARY}"
0093     INTERFACE_COMPILE_OPTIONS "${LCMS2_PKG_CONF_CFLAGS_OTHER}"
0094     INTERFACE_INCLUDE_DIRECTORIES "${LCMS2_FAST_FLOAT_INCLUDE_DIR}"
0095   )
0096 endif()
0097 
0098 if(LCMS2_FOUND AND NOT TARGET LCMS2::LCMS)
0099   add_library(LCMS2::LCMS UNKNOWN IMPORTED)
0100   set_target_properties(LCMS2::LCMS PROPERTIES
0101     IMPORTED_LOCATION "${LCMS2_LIBRARY}"
0102     INTERFACE_COMPILE_OPTIONS "${LCMS2_PKG_CONF_CFLAGS_OTHER}"
0103     INTERFACE_INCLUDE_DIRECTORIES "${LCMS2_INCLUDE_DIR}"
0104   )
0105 endif()