-
Notifications
You must be signed in to change notification settings - Fork 857
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add Findepoxy module from 'extra-cmake-modules'
- Loading branch information
1 parent
3ce4553
commit b0a02d2
Showing
1 changed file
with
84 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# SPDX-FileCopyrightText: 2014 Fredrik Höglund <[email protected]> | ||
# SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <[email protected]> | ||
# | ||
# 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 | ||
) |