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