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()