summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindX.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindX.cmake')
-rw-r--r--cmake/modules/FindX.cmake57
1 files changed, 57 insertions, 0 deletions
diff --git a/cmake/modules/FindX.cmake b/cmake/modules/FindX.cmake
new file mode 100644
index 0000000..a52f86f
--- /dev/null
+++ b/cmake/modules/FindX.cmake
@@ -0,0 +1,57 @@
+#.rst:
+# FindX
+# -----
+# Finds the X11 library
+#
+# This will define the following variables::
+#
+# X_FOUND - system has X11
+# X_INCLUDE_DIRS - the X11 include directory
+# X_LIBRARIES - the X11 libraries
+# X_DEFINITIONS - the X11 definitions
+#
+# and the following imported targets::
+#
+# X::X - The X11 library
+# X::Xext - The X11 extension library
+
+if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_X x11 xext QUIET)
+endif()
+
+find_path(X_INCLUDE_DIR NAMES X11/Xlib.h
+ PATHS ${PC_X_x11_INCLUDEDIR})
+find_library(X_LIBRARY NAMES X11
+ PATHS ${PC_X_x11_LIBDIR})
+find_library(X_EXT_LIBRARY NAMES Xext
+ PATHS ${PC_X_xext_LIBDIR})
+
+set(X_VERSION ${PC_X_x11_VERSION})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(X
+ REQUIRED_VARS X_LIBRARY X_EXT_LIBRARY X_INCLUDE_DIR
+ VERSION_VAR X_VERSION)
+
+if(X_FOUND)
+ set(X_LIBRARIES ${X_LIBRARY} ${X_EXT_LIBRARY})
+ set(X_INCLUDE_DIRS ${X_INCLUDE_DIR})
+ set(X_DEFINITIONS -DHAVE_X11=1)
+
+ if(NOT TARGET X::X)
+ add_library(X::X UNKNOWN IMPORTED)
+ set_target_properties(X::X PROPERTIES
+ IMPORTED_LOCATION "${X_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X_INCLUDE_DIR}"
+ INTERFACE_COMPILE_DEFINITIONS HAVE_X11=1)
+ endif()
+ if(NOT TARGET X::Xext)
+ add_library(X::Xext UNKNOWN IMPORTED)
+ set_target_properties(X::Xext PROPERTIES
+ IMPORTED_LOCATION "${X_EXT_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES X::X)
+ endif()
+endif()
+
+mark_as_advanced(X_INCLUDE_DIR X_LIBRARY X_EXT_LIBRARY)