From 3587d5560c900f162251487f5addbf900bd191c8 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Wed, 14 Feb 2024 20:45:44 +0100 Subject: [PATCH] add Findepoxy module from 'extra-cmake-modules' https://invent.kde.org/frameworks/extra-cmake-modules/-/blob/v5.115.0/find-modules/Findepoxy.cmake --- cmake/Findepoxy.cmake | 84 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 cmake/Findepoxy.cmake diff --git a/cmake/Findepoxy.cmake b/cmake/Findepoxy.cmake new file mode 100644 index 000000000..25eaf271a --- /dev/null +++ b/cmake/Findepoxy.cmake @@ -0,0 +1,84 @@ +# SPDX-FileCopyrightText: 2014 Fredrik Höglund +# SPDX-FileCopyrightText: 2020 Vlad Zahorodnii +# +# SPDX-License-Identifier: BSD-3-Clause + +#[=======================================================================[.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. +#]=======================================================================] + +find_package(PkgConfig QUIET) +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 +)