kwin/cmake/modules/FindFontconfig.cmake
Vlad Zahorodnii 1fb9f6f13a Switch to SPDX license markers
The main advantage of SPDX license identifiers over the traditional
license headers is that it's more difficult to overlook inappropriate
licenses for kwin, for example GPL 3. We also don't have to copy a
lot of boilerplate text.

In order to create this change, I ran licensedigger -r -c from the
toplevel source directory.
2020-08-07 19:57:56 +00:00

89 lines
3.4 KiB
CMake

#.rst:
# FindFontconfig
# --------------
#
# Try to find Fontconfig.
# Once done this will define the following variables:
#
# ``Fontconfig_FOUND``
# True if Fontconfig is available
# ``Fontconfig_INCLUDE_DIRS``
# The include directory to use for the Fontconfig headers
# ``Fontconfig_LIBRARIES``
# The Fontconfig libraries for linking
# ``Fontconfig_DEFINITIONS``
# Compiler switches required for using Fontconfig
# ``Fontconfig_VERSION``
# The version of Fontconfig that has been found
#
# If ``Fontconfig_FOUND`` is True, it will also define the following
# imported target:
#
# ``Fontconfig::Fontconfig``
#=============================================================================
# SPDX-FileCopyrightText: 2006, 2007 Laurent Montel <montel@kde.org>
# SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org>
#
# SPDX-License-Identifier: BSD-3-Clause
#=============================================================================
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_FONTCONFIG QUIET fontconfig)
set(Fontconfig_DEFINITIONS ${PC_FONTCONFIG_CFLAGS_OTHER})
find_path(Fontconfig_INCLUDE_DIRS fontconfig/fontconfig.h
PATHS
${PC_FONTCONFIG_INCLUDE_DIRS}
/usr/X11/include
)
find_library(Fontconfig_LIBRARIES NAMES fontconfig
PATHS
${PC_FONTCONFIG_LIBRARY_DIRS}
)
set(Fontconfig_VERSION ${PC_FONTCONFIG_VERSION})
if (NOT Fontconfig_VERSION)
find_file(Fontconfig_VERSION_HEADER
NAMES "fontconfig/fontconfig.h"
HINTS ${Fontconfig_INCLUDE_DIRS}
)
mark_as_advanced(Fontconfig_VERSION_HEADER)
if (Fontconfig_VERSION_HEADER)
file(READ ${Fontconfig_VERSION_HEADER} _fontconfig_version_header_content)
string(REGEX MATCH "#define FC_MAJOR[ \t]+[0-9]+" Fontconfig_MAJOR_VERSION_MATCH ${_fontconfig_version_header_content})
string(REGEX MATCH "#define FC_MINOR[ \t]+[0-9]+" Fontconfig_MINOR_VERSION_MATCH ${_fontconfig_version_header_content})
string(REGEX MATCH "#define FC_REVISION[ \t]+[0-9]+" Fontconfig_PATCH_VERSION_MATCH ${_fontconfig_version_header_content})
string(REGEX REPLACE ".*FC_MAJOR[ \t]+(.*)" "\\1" Fontconfig_MAJOR_VERSION ${Fontconfig_MAJOR_VERSION_MATCH})
string(REGEX REPLACE ".*FC_MINOR[ \t]+(.*)" "\\1" Fontconfig_MINOR_VERSION ${Fontconfig_MINOR_VERSION_MATCH})
string(REGEX REPLACE ".*FC_REVISION[ \t]+(.*)" "\\1" Fontconfig_PATCH_VERSION ${Fontconfig_PATCH_VERSION_MATCH})
set(Fontconfig_VERSION "${Fontconfig_MAJOR_VERSION}.${Fontconfig_MINOR_VERSION}.${Fontconfig_PATCH_VERSION}")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Fontconfig
FOUND_VAR Fontconfig_FOUND
REQUIRED_VARS Fontconfig_LIBRARIES Fontconfig_INCLUDE_DIRS
VERSION_VAR Fontconfig_VERSION
)
mark_as_advanced(Fontconfig_LIBRARIES Fontconfig_INCLUDE_DIRS)
if(Fontconfig_FOUND AND NOT TARGET Fontconfig::Fontconfig)
add_library(Fontconfig::Fontconfig UNKNOWN IMPORTED)
set_target_properties(Fontconfig::Fontconfig PROPERTIES
IMPORTED_LOCATION "${Fontconfig_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${Fontconfig_INCLUDE_DIRS}"
INTERFACE_COMPILER_DEFINITIONS "${Fontconfig_DEFINITIONS}"
)
endif()
include(FeatureSummary)
set_package_properties(Fontconfig PROPERTIES
URL "https://www.fontconfig.org/"
DESCRIPTION "Fontconfig is a library for configuring and customizing font access"
)