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

0001 # SPDX-FileCopyrightText: 2020 Ashwin Dhakaita <ashwingpdhakaita@gmail.com>
0002 # SPDX-FileCopyrightText: 2023 L. E. Segovia <amy@amyspark.me>
0003 # SPDX-License-Identifier: BSD-3-Clause
0004 
0005 #[=======================================================================[.rst:
0006 FindLibMyPaint
0007 --------------
0008 
0009 Find LibMyPaint headers and libraries.
0010 
0011 Imported Targets
0012 ^^^^^^^^^^^^^^^^
0013 
0014 ``LibMyPaint::mypaint``
0015   The LibMyPaint library, if found.
0016 
0017 Result Variables
0018 ^^^^^^^^^^^^^^^^
0019 
0020 This will define the following variables in your project:
0021 
0022 ``LibMyPaint_FOUND``
0023   true if (the requested version of) LibMyPaint is available.
0024 ``LibMyPaint_VERSION``
0025   the version of LibMyPaint.
0026 ``LibMyPaint_LIBRARIES``
0027   the libraries to link against to use LibMyPaint.
0028 ``LibMyPaint_INCLUDE_DIRS``
0029   where to find the LibMyPaint headers.
0030 ``LibMyPaint_COMPILE_OPTIONS``
0031   this should be passed to target_compile_options(), if the
0032   target is not used for linking
0033 
0034 #]=======================================================================]
0035 
0036 
0037 set(MYPAINT_PKGCONF_CONFIG_DIR CACHE STRING "PkgConfig path for locating the package modules")
0038 foreach(_dir ${CMAKE_PREFIX_PATH})
0039     list(APPEND MYPAINT_PKGCONF_CONFIG_DIR ${_dir}/lib/cmake/libmypaint)
0040 endforeach()
0041 mark_as_advanced(MYPAINT_PKGCONF_CONFIG_DIR)
0042 
0043 find_package(libmypaint QUIET NO_MODULE
0044     HINTS ${MYPAINT_PKGCONF_CONFIG_DIR} /usr/lib/cmake/libmypaint /usr/local/lib/cmake/libmypaint
0045 )
0046 mark_as_advanced(libmypaint_DIR)
0047 
0048 if(libmypaint_FOUND)
0049 
0050     # Patch in the missing definitions.
0051     if (TARGET mypaint AND NOT TARGET LibMyPaint::mypaint)
0052         add_library(LibMyPaint::mypaint ALIAS mypaint)
0053     endif()
0054 
0055     if (NOT Libmypaint_LIBRARIES)
0056         set(LibMyPaint_LIBRARIES LibMyPaint::mypaint)
0057     endif()
0058 
0059     set(LibMyPaint_INCLUDE_DIRS "${libmypaint_INCLUDE_DIRS}")
0060     set(LibMyPaint_VERSION "${libmypaint_VERSION}")
0061 
0062     find_package_handle_standard_args(LibMyPaint
0063         FOUND_VAR LibMyPaint_FOUND
0064         REQUIRED_VARS LibMyPaint_INCLUDE_DIRS LibMyPaint_LIBRARIES
0065         VERSION_VAR LibMyPaint_VERSION
0066         NAME_MISMATCHED
0067         # CONFIG_MODE
0068     )
0069 
0070     return()
0071 endif()
0072     
0073 find_package(PkgConfig QUIET)
0074 
0075 if (PkgConfig_FOUND)
0076     pkg_check_modules(MYPAINT_PKGCONF QUIET libmypaint)
0077     set(LibMyPaint_VERSION ${MYPAINT_PKGCONF_VERSION})
0078     set(LibMyPaint_COMPILE_OPTIONS "${MYPAINT_PKGCONF_CFLAGS};${MYPAINT_PKGCONF_CFLAGS_OTHER}")
0079 endif ()
0080 
0081 find_path(LibMyPaint_INCLUDE_DIR
0082     NAMES libmypaint/mypaint-config.h
0083     HINTS ${MYPAINT_PKGCONF_INCLUDE_DIRS} ${MYPAINT_PKGCONF_INCLUDEDIR}
0084     PATH_SUFFIXES libmypaint
0085 )
0086 
0087 find_library(LibMyPaint_LIBRARY
0088     NAMES libmypaint mypaint
0089     HINTS ${MYPAINT_PKGCONF_LIBRARY_DIRS} ${MYPAINT_PKGCONF_LIBDIR}
0090 )
0091 
0092 if (NOT LibMyPaint_VERSION)
0093     file(READ ${LibMyPaint_INCLUDE_DIR}/config.h _version_content)
0094 
0095     string(REGEX MATCH "#define PACKAGE_VERSION[ \t]+\"(.+)\"" _version_match ${_version_content})
0096 
0097     if (_version_match)
0098         set(LibMyPaint_VERSION "${CMAKE_MATCH_1}")
0099     else()
0100         if(NOT LibMyPaint_FIND_QUIETLY)
0101             message(WARNING "Failed to get version information from ${LibMyPaint_INCLUDE_DIR}/config.h")
0102         endif()
0103     endif()
0104 endif()
0105 
0106 if (LibMyPaint_INCLUDE_DIR AND LibMyPaint_LIBRARY)
0107     set(LibMyPaint_FOUND ON)
0108 else()
0109     set(LibMyPaint_FOUND OFF)
0110 endif()
0111 
0112 find_package_handle_standard_args(LibMyPaint
0113     FOUND_VAR LibMyPaint_FOUND
0114     REQUIRED_VARS LibMyPaint_INCLUDE_DIR LibMyPaint_LIBRARY
0115     HANDLE_COMPONENTS
0116     VERSION_VAR LibMyPaint_VERSION
0117 )
0118 
0119 if (LibMyPaint_FOUND)
0120 if (LibMyPaint_LIBRARY AND NOT TARGET LibMyPaint::mypaint)
0121     add_library(LibMyPaint::mypaint UNKNOWN IMPORTED GLOBAL)
0122     set_target_properties(LibMyPaint::mypaint PROPERTIES
0123         IMPORTED_LOCATION "${LibMyPaint_LIBRARY}"
0124         INTERFACE_COMPILE_OPTIONS "${MYPAINT_PKGCONF_CFLAGS_OTHER}"
0125         INTERFACE_INCLUDE_DIRECTORIES "${LibMyPaint_INCLUDE_DIR}"
0126         INTERFACE_LINK_LIBRARIES "${MYPAINT_PKGCONF_LIBRARIES}"
0127         INTERFACE_LINK_DIRECTORIES "${MYPAINT_PKGCONF_LIBDIR}"
0128     )
0129 endif()
0130 
0131 mark_as_advanced(
0132     LibMyPaint_INCLUDE_DIR
0133     LibMyPaint_LIBRARY
0134 )
0135 
0136 set(LibMyPaint_LIBRARIES ${LibMyPaint_LIBRARY})
0137 set(LibMyPaint_INCLUDE_DIRS ${LibMyPaint_INCLUDE_DIR})
0138 endif()