Warning, /graphics/krita/cmake/modules/FindJPEGXL.cmake is written in an unsupported language. File is not indexed.
0001 # Copyright (C) 2021 Sony Interactive Entertainment Inc.
0002 #
0003 # Redistribution and use in source and binary forms, with or without
0004 # modification, are permitted provided that the following conditions
0005 # are met:
0006 # 1. Redistributions of source code must retain the above copyright
0007 # notice, this list of conditions and the following disclaimer.
0008 # 2. Redistributions in binary form must reproduce the above copyright
0009 # notice, this list of conditions and the following disclaimer in the
0010 # documentation and/or other materials provided with the distribution.
0011 #
0012 # THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
0013 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
0014 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
0015 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
0016 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0017 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0018 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0019 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0020 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0021 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
0022 # THE POSSIBILITY OF SUCH DAMAGE.
0023
0024 #[=======================================================================[.rst:
0025 FindJPEGXL
0026 ---------
0027
0028 Find JPEGXL headers and libraries.
0029
0030 Imported Targets
0031 ^^^^^^^^^^^^^^^^
0032
0033 ``JPEGXL::jxl``
0034 The JPEGXL library, if found.
0035
0036 Result Variables
0037 ^^^^^^^^^^^^^^^^
0038
0039 This will define the following variables in your project:
0040
0041 ``JPEGXL_FOUND``
0042 true if (the requested version of) JPEGXL is available.
0043 ``JPEGXL_VERSION``
0044 the version of JPEGXL.
0045 ``JPEGXL_LIBRARIES``
0046 the libraries to link against to use JPEGXL.
0047 ``JPEGXL_INCLUDE_DIRS``
0048 where to find the JPEGXL headers.
0049 ``JPEGXL_COMPILE_OPTIONS``
0050 this should be passed to target_compile_options(), if the
0051 target is not used for linking
0052
0053 #]=======================================================================]
0054
0055 find_package(PkgConfig QUIET)
0056 if (PkgConfig_FOUND)
0057 pkg_check_modules(PC_JPEGXL QUIET libjxl)
0058 set(JPEGXL_COMPILE_OPTIONS "${PC_JPEGXL_CFLAGS_OTHER}")
0059 set(JPEGXL_VERSION ${PC_JPEGXL_VERSION})
0060
0061 pkg_check_modules(PC_JPEGXL_THREADS QUIET libjxl_threads)
0062 set(JPEGXL_THREADS_COMPILE_OPTIONS ${PC_JPEGXL_THREADS_CFLAGS_OTHER})
0063 endif ()
0064
0065 find_path(JPEGXL_INCLUDE_DIR
0066 NAMES jxl/decode.h
0067 HINTS ${PC_JPEGXL_INCLUDEDIR} ${PC_JPEGXL_INCLUDE_DIRS} ${JPEGXL_INCLUDE_DIR}
0068 )
0069
0070 find_library(JPEGXL_LIBRARY
0071 NAMES ${JPEGXL_NAMES} jxl
0072 HINTS ${PC_JPEGXL_LIBDIR} ${PC_JPEGXL_LIBRARY_DIRS}
0073 )
0074
0075 find_library(JPEGXL_THREADS_LIBRARY
0076 NAMES ${JPEGXL_NAMES} jxl_threads
0077 HINTS ${PC_JPEGXL_LIBDIR} ${PC_JPEGXL_LIBRARY_DIRS} ${PC_JPEGXL_THREADS_LIBDIR} ${PC_JPEGXL_THREADS_LIBRARY_DIRS}
0078 )
0079
0080 include(FindPackageHandleStandardArgs)
0081 find_package_handle_standard_args(JPEGXL
0082 FOUND_VAR JPEGXL_FOUND
0083 REQUIRED_VARS JPEGXL_LIBRARY JPEGXL_INCLUDE_DIR
0084 VERSION_VAR JPEGXL_VERSION
0085 )
0086
0087 if (JPEGXL_LIBRARY AND NOT TARGET JPEGXL::jxl)
0088 add_library(JPEGXL::jxl UNKNOWN IMPORTED GLOBAL)
0089 set_target_properties(JPEGXL::jxl PROPERTIES
0090 IMPORTED_LOCATION "${JPEGXL_LIBRARY}"
0091 INTERFACE_COMPILE_OPTIONS "${JPEGXL_COMPILE_OPTIONS}"
0092 INTERFACE_INCLUDE_DIRECTORIES "${JPEGXL_INCLUDE_DIR}"
0093 )
0094 endif ()
0095
0096 if (JPEGXL_THREADS_LIBRARY AND NOT TARGET JPEGXL::jxl_threads)
0097 add_library(JPEGXL::jxl_threads UNKNOWN IMPORTED GLOBAL)
0098 set_target_properties(JPEGXL::jxl_threads PROPERTIES
0099 IMPORTED_LOCATION "${JPEGXL_THREADS_LIBRARY}"
0100 INTERFACE_COMPILE_OPTIONS "${JPEGXL_THREADS_COMPILE_OPTIONS}"
0101 INTERFACE_INCLUDE_DIRECTORIES "${JPEGXL_INCLUDE_DIR}"
0102 )
0103 endif ()
0104
0105 mark_as_advanced(JPEGXL_INCLUDE_DIR JPEGXL_LIBRARY JPEGXL_THREADS_LIBRARY)
0106
0107 if (JPEGXL_FOUND)
0108 set(JPEGXL_LIBRARIES ${JPEGXL_LIBRARY})
0109 set(JPEGXL_INCLUDE_DIRS ${JPEGXL_INCLUDE_DIR})
0110 endif ()
0111
0112 if (JPEGXL_THREADS_LIBRARY)
0113 list(APPEND JPEGXL_LIBRARIES ${JPEGXL_THREADS_LIBRARY})
0114 endif ()