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

0001 # SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
0002 # SPDX-FileCopyrightText: 2023 Alvin Wong <alvin@alvinhc.com>
0003 # SPDX-License-Identifier: BSD-3-Clause
0004 
0005 #[=======================================================================[.rst:
0006 FindFriBidi
0007 --------------
0008 
0009 Find FriBidi headers and libraries.
0010 
0011 Imported Targets
0012 ^^^^^^^^^^^^^^^^
0013 
0014 ``FriBidi::FriBidi``
0015   The FriBidi library, if found.
0016 
0017 Result Variables
0018 ^^^^^^^^^^^^^^^^
0019 
0020 This will define the following variables in your project:
0021 
0022 ``FriBidi_FOUND``
0023   true if (the requested version of) FriBidi is available.
0024 ``FriBidi_VERSION``
0025   the version of FriBidi.
0026 ``FriBidi_LIBRARIES``
0027   the libraries to link against to use FriBidi.
0028 ``FriBidi_INCLUDE_DIRS``
0029   where to find the FriBidi headers.
0030 ``FriBidi_COMPILE_OPTIONS``
0031   this should be passed to target_compile_options(), if the
0032   target is not used for linking
0033 
0034 #]=======================================================================]
0035 
0036 include(FindPackageHandleStandardArgs)
0037 
0038 find_package(PkgConfig QUIET)
0039 
0040 if (PkgConfig_FOUND)
0041     pkg_check_modules(PC_FRIBIDI QUIET fribidi)
0042     set(FriBidi_VERSION ${PC_FRIBIDI_VERSION})
0043     set(FriBidi_COMPILE_OPTIONS "${PC_FRIBIDI_CFLAGS} ${PC_FRIBIDI_CFLAGS_OTHER}")
0044 endif ()
0045 
0046 find_path(FriBidi_INCLUDE_DIR
0047     NAMES fribidi/fribidi.h
0048     HINTS ${PC_FRIBIDI_INCLUDEDIR} ${PC_FRIBIDI_INCLUDE_DIRS}
0049 )
0050 if(FriBidi_INCLUDE_DIR)
0051     set(FriBidi_INCLUDE_DIR ${FriBidi_INCLUDE_DIR}/fribidi)
0052 endif()
0053 
0054 find_library(FriBidi_LIBRARY
0055     NAMES ${FriBidi_NAMES} fribidi
0056     HINTS ${PC_FRIBIDI_LIBDIR} ${PC_FRIBIDI_LIBRARY_DIRS}
0057 )
0058 
0059 if (NOT FriBidi_VERSION AND FriBidi_INCLUDE_DIR)
0060     file(READ ${FriBidi_INCLUDE_DIR}/fribidi-config.h _fribidi_version_content)
0061 
0062     string(REGEX MATCH "#define FRIBIDI_VERSION[ \t]+\"([0-9.]+)\"\n" _version_match ${_fribidi_version_content})
0063 
0064     if (_version_match)
0065         set(FriBidi_VERSION "${CMAKE_MATCH_1}")
0066     else()
0067         if(NOT FriBidi_FIND_QUIETLY)
0068             message(WARNING "Failed to get version information from ${FriBidi_INCLUDE_DIR}/fribidi-config.h")
0069         endif()
0070     endif()
0071 endif()
0072 
0073 if (FriBidi_INCLUDE_DIR AND FriBidi_LIBRARY)
0074     set(FriBidi_FOUND ON)
0075 else()
0076     set(FriBidi_FOUND OFF)
0077 endif()
0078 
0079 find_package_handle_standard_args(FriBidi
0080     FOUND_VAR FriBidi_FOUND
0081     REQUIRED_VARS FriBidi_INCLUDE_DIR FriBidi_LIBRARY
0082     HANDLE_COMPONENTS
0083     VERSION_VAR FriBidi_VERSION
0084 )
0085 
0086 if (FriBidi_FOUND)
0087 if (FriBidi_LIBRARY AND NOT TARGET FriBidi::FriBidi)
0088     add_library(FriBidi::FriBidi UNKNOWN IMPORTED GLOBAL)
0089     set_target_properties(FriBidi::FriBidi PROPERTIES
0090         IMPORTED_LOCATION "${FriBidi_LIBRARY}"
0091         INTERFACE_COMPILE_OPTIONS "${PC_FRIBIDI_CFLAGS_OTHER}"
0092         INTERFACE_INCLUDE_DIRECTORIES "${FriBidi_INCLUDE_DIR}"
0093         INTERFACE_LINK_LIBRARIES "${PC_FRIBIDI_LINK_LIBRARIES}"
0094         INTERFACE_LINK_DIRECTORIES "${PC_FRIBIDI_LIBDIR}"
0095     )
0096 endif ()
0097 
0098 mark_as_advanced(
0099     FriBidi_INCLUDE_DIR
0100     FriBidi_LIBRARY
0101 )
0102 
0103 set(FriBidi_LIBRARIES ${FriBidi_LIBRARY})
0104 set(FriBidi_INCLUDE_DIRS ${FriBidi_INCLUDE_DIR})
0105 endif()