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

0001 # SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 
0004 #[=======================================================================[.rst:
0005 Findlibunibreak
0006 --------------
0007 
0008 Find libunibreak headers and library.
0009 
0010 Imported Targets
0011 ^^^^^^^^^^^^^^^^
0012 
0013 ``libunibreak::libunibreak``
0014   The libunibreak library, if found.
0015 
0016 Result Variables
0017 ^^^^^^^^^^^^^^^^
0018 
0019 This will define the following variables in your project:
0020 
0021 ``libunibreak_FOUND``
0022   true if (the requested version of) libunibreak is available.
0023 ``libunibreak_VERSION``
0024   the version of libunibreak.
0025 ``libunibreak_LIBRARIES``
0026   the libraries to link against to use libunibreak.
0027 ``libunibreak_INCLUDE_DIRS``
0028   where to find the libunibreak headers.
0029 ``libunibreak_COMPILE_OPTIONS``
0030   this should be passed to target_compile_options(), if the
0031   target is not used for linking
0032 
0033 #]=======================================================================]
0034 
0035 include(FindPackageHandleStandardArgs)
0036 
0037 find_package(PkgConfig QUIET)
0038 
0039 if (PkgConfig_FOUND)
0040     pkg_check_modules(PC_LIBUNIBREAK QUIET libunibreak)
0041     set(libunibreak_VERSION ${PC_LIBUNIBREAK_VERSION})
0042     set(libunibreak_COMPILE_OPTIONS "${PC_LIBUNIBREAK_CFLAGS} ${PC_LIBUNIBREAK_CFLAGS_OTHER}")
0043 endif ()
0044 
0045 find_path(libunibreak_INCLUDE_DIR
0046     NAMES unibreakbase.h
0047     HINTS ${PC_LIBUNIBREAK_INCLUDEDIR} ${PC_LIBUNIBREAK_INCLUDE_DIRS}
0048 )
0049 
0050 find_library(libunibreak_LIBRARY
0051     NAMES ${libunibreak_NAMES} unibreak libunibreak
0052     HINTS ${PC_LIBUNIBREAK_LIBDIR} ${PC_LIBUNIBREAK_LIBRARY_DIRS}
0053 )
0054 
0055 if (NOT libunibreak_VERSION)
0056     file(READ ${libunibreak_INCLUDE_DIR}/unibreakbase.h _libunibreak_version_content)
0057 
0058     string(REGEX MATCH "#define UNIBREAK_VERSION[ \t]+0x([0-9][0-9])([0-9][0-9])[^\n]*\n" _version_match ${_libunibreak_version_content})
0059 
0060     if (_version_match)
0061         set(libunibreak_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}")
0062     else()
0063         if(NOT libunibreak_FIND_QUIETLY)
0064             message(WARNING "Failed to get version information from ${libunibreak_INCLUDE_DIR}/unibreakbase.h")
0065         endif()
0066     endif()
0067 endif()
0068 
0069 if (libunibreak_INCLUDE_DIR AND libunibreak_LIBRARY)
0070     set(libunibreak_FOUND ON)
0071 else()
0072     set(libunibreak_FOUND OFF)
0073 endif()
0074 
0075 find_package_handle_standard_args(libunibreak
0076     FOUND_VAR libunibreak_FOUND
0077     REQUIRED_VARS libunibreak_INCLUDE_DIR libunibreak_LIBRARY
0078     HANDLE_COMPONENTS
0079     VERSION_VAR libunibreak_VERSION
0080 )
0081 
0082 if (libunibreak_FOUND)
0083 if (libunibreak_LIBRARY AND NOT TARGET libunibreak::libunibreak)
0084     add_library(libunibreak::libunibreak UNKNOWN IMPORTED GLOBAL)
0085     set_target_properties(libunibreak::libunibreak PROPERTIES
0086         IMPORTED_LOCATION "${libunibreak_LIBRARY}"
0087         INTERFACE_COMPILE_OPTIONS "${PC_LIBUNIBREAK_CFLAGS_OTHER}"
0088         INTERFACE_INCLUDE_DIRECTORIES "${libunibreak_INCLUDE_DIR}"
0089         INTERFACE_LINK_LIBRARIES "${PC_LIBUNIBREAK_LINK_LIBRARIES}"
0090         INTERFACE_LINK_DIRECTORIES "${PC_LIBUNIBREAK_LIBDIR}"
0091     )
0092 endif ()
0093 
0094 mark_as_advanced(
0095     libunibreak_INCLUDE_DIR
0096     libunibreak_LIBRARY
0097 )
0098 
0099 set(libunibreak_LIBRARIES ${libunibreak_LIBRARY})
0100 set(libunibreak_INCLUDE_DIRS ${libunibreak_INCLUDE_DIR})
0101 endif()