aboutsummaryrefslogtreecommitdiff
path: root/find-modules
diff options
context:
space:
mode:
authorVlad Zahorodnii <vlad.zahorodnii@kde.org>2020-12-31 12:54:12 +0200
committerVlad Zahorodnii <vlad.zahorodnii@kde.org>2020-12-31 12:54:12 +0200
commit6644ad8fe64f0df3ea2f1d3106640ed0faf0d25d (patch)
tree1747e1e9a35008dff748ab7887a70f8f2919e893 /find-modules
parent18c0cc795fbf659350b23a5d61bf421f1fb1fda8 (diff)
downloadextra-cmake-modules-6644ad8fe64f0df3ea2f1d3106640ed0faf0d25d.tar.gz
extra-cmake-modules-6644ad8fe64f0df3ea2f1d3106640ed0faf0d25d.tar.bz2
Add Findepoxy.cmake
It is based on the one that can be found in KWin. Several KDE projects already use libepoxy (KWin and KDeclarative).
Diffstat (limited to 'find-modules')
-rw-r--r--find-modules/Findepoxy.cmake83
1 files changed, 83 insertions, 0 deletions
diff --git a/find-modules/Findepoxy.cmake b/find-modules/Findepoxy.cmake
new file mode 100644
index 00000000..548be5bc
--- /dev/null
+++ b/find-modules/Findepoxy.cmake
@@ -0,0 +1,83 @@
+#.rst:
+# Findepoxy
+# ---------
+#
+# Try to find libepoxy on a Unix system.
+#
+# This will define the following variables:
+#
+# ``epoxy_FOUND``
+# True if (the requested version of) libepoxy is available
+# ``epoxy_VERSION``
+# The version of libepoxy
+# ``epoxy_LIBRARIES``
+# This should be passed to target_link_libraries() if the target is not
+# used for linking
+# ``epoxy_INCLUDE_DIRS``
+# This should be passed to target_include_directories() if the target is not
+# used for linking
+# ``epoxy_DEFINITIONS``
+# This should be passed to target_compile_options() if the target is not
+# used for linking
+# ``epoxy_HAS_GLX``
+# True if GLX support is available
+#
+# If ``epoxy_FOUND`` is TRUE, it will also define the following imported target:
+#
+# ``epoxy::epoxy``
+# The epoxy library
+#
+# In general we recommend using the imported target, as it is easier to use.
+# Bear in mind, however, that if the target is in the link interface of an
+# exported library, it must be made available by the package config file.
+
+# SPDX-FileCopyrightText: 2014 Fredrik Höglund <fredrik@kde.org>
+# SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
+find_package(PkgConfig)
+pkg_check_modules(PKG_epoxy QUIET epoxy)
+
+set(epoxy_VERSION ${PKG_epoxy_VERSION})
+set(epoxy_DEFINITIONS ${PKG_epoxy_CFLAGS})
+
+find_path(epoxy_INCLUDE_DIRS
+ NAMES epoxy/gl.h
+ HINTS ${PKG_epoxy_INCLUDEDIR} ${PKG_epoxy_INCLUDE_DIRS}
+)
+find_library(epoxy_LIBRARIES
+ NAMES epoxy
+ HINTS ${PKG_epoxy_LIBDIR} ${PKG_epoxy_LIBRARY_DIRS}
+)
+find_file(epoxy_GLX_HEADER NAMES epoxy/glx.h HINTS ${epoxy_INCLUDE_DIR})
+
+if (epoxy_GLX_HEADER STREQUAL "epoxy_GLX_HEADER-NOTFOUND")
+ set(epoxy_HAS_GLX FALSE CACHE BOOL "whether glx is available")
+else ()
+ set(epoxy_HAS_GLX TRUE CACHE BOOL "whether glx is available")
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(epoxy
+ FOUND_VAR epoxy_FOUND
+ REQUIRED_VARS epoxy_LIBRARIES epoxy_INCLUDE_DIRS
+ VERSION_VAR epoxy_VERSION
+)
+
+if (epoxy_FOUND AND NOT TARGET epoxy::epoxy)
+ add_library(epoxy::epoxy UNKNOWN IMPORTED)
+ set_target_properties(epoxy::epoxy PROPERTIES
+ IMPORTED_LOCATION "${epoxy_LIBRARIES}"
+ INTERFACE_COMPILE_OPTIONS "${epoxy_DEFINITIONS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${epoxy_INCLUDE_DIRS}"
+ )
+endif()
+
+mark_as_advanced(
+ epoxy_DEFINITIONS
+ epoxy_HAS_GLX
+ epoxy_INCLUDE_DIRS
+ epoxy_LIBRARIES
+ epoxy_VERSION
+)