1 # Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2 # file Copyright.txt or https://cmake.org/licensing for details. 4 #[=======================================================================[.rst: 10 Try to find X11
on UNIX systems. The following values are defined
14 X11_FOUND - True
if X11 is available
15 X11_INCLUDE_DIR - include directories to use X11
16 X11_LIBRARIES - link against these to use X11
18 and also the following more fine grained variables and targets:
22 X11_ICE_INCLUDE_PATH, X11_ICE_LIB, X11_ICE_FOUND, X11::ICE
23 X11_SM_INCLUDE_PATH, X11_SM_LIB, X11_SM_FOUND, X11::SM
24 X11_X11_INCLUDE_PATH, X11_X11_LIB, X11::X11
25 X11_Xaccessrules_INCLUDE_PATH,
26 X11_Xaccessstr_INCLUDE_PATH, X11_Xaccess_FOUND
27 X11_Xau_INCLUDE_PATH, X11_Xau_LIB, X11_Xau_FOUND, X11::Xau
28 X11_Xcomposite_INCLUDE_PATH, X11_Xcomposite_LIB, X11_Xcomposite_FOUND, X11::Xcomposite
29 X11_Xcursor_INCLUDE_PATH, X11_Xcursor_LIB, X11_Xcursor_FOUND, X11::Xcursor
30 X11_Xdamage_INCLUDE_PATH, X11_Xdamage_LIB, X11_Xdamage_FOUND, X11::Xdamage
31 X11_Xdmcp_INCLUDE_PATH, X11_Xdmcp_LIB, X11_Xdmcp_FOUND, X11::Xdmcp
32 X11_Xext_INCLUDE_PATH, X11_Xext_LIB, X11_Xext_FOUND, X11::Xext
33 X11_Xxf86misc_INCLUDE_PATH, X11_Xxf86misc_LIB, X11_Xxf86misc_FOUND, X11::Xxf86misc
34 X11_Xxf86vm_INCLUDE_PATH, X11_Xxf86vm_LIB X11_Xxf86vm_FOUND, X11::Xxf86vm
35 X11_Xfixes_INCLUDE_PATH, X11_Xfixes_LIB, X11_Xfixes_FOUND, X11::Xfixes
36 X11_Xft_INCLUDE_PATH, X11_Xft_LIB, X11_Xft_FOUND, X11::Xft
37 X11_Xi_INCLUDE_PATH, X11_Xi_LIB, X11_Xi_FOUND, X11::Xi
38 X11_Xinerama_INCLUDE_PATH, X11_Xinerama_LIB, X11_Xinerama_FOUND, X11::Xinerama
40 X11_Xkblib_INCLUDE_PATH, X11_Xkb_FOUND, X11::Xkb
41 X11_xkbfile_INCLUDE_PATH, X11_xkbfile_LIB, X11_xkbfile_FOUND, X11::xkbfile
42 X11_Xmu_INCLUDE_PATH, X11_Xmu_LIB, X11_Xmu_FOUND, X11::Xmu
43 X11_Xpm_INCLUDE_PATH, X11_Xpm_LIB, X11_Xpm_FOUND, X11::Xpm
44 X11_Xtst_INCLUDE_PATH, X11_Xtst_LIB, X11_Xtst_FOUND, X11::Xtst
45 X11_Xrandr_INCLUDE_PATH, X11_Xrandr_LIB, X11_Xrandr_FOUND, X11::Xrandr
46 X11_Xrender_INCLUDE_PATH, X11_Xrender_LIB, X11_Xrender_FOUND, X11::Xrender
47 X11_XRes_INCLUDE_PATH, X11_XRes_LIB, X11_XRes_FOUND, X11::XRes
48 X11_Xss_INCLUDE_PATH, X11_Xss_LIB, X11_Xss_FOUND, X11::Xss
49 X11_Xt_INCLUDE_PATH, X11_Xt_LIB, X11_Xt_FOUND, X11::Xt
50 X11_Xutil_INCLUDE_PATH, X11_Xutil_FOUND, X11::Xutil
51 X11_Xv_INCLUDE_PATH, X11_Xv_LIB, X11_Xv_FOUND, X11::Xv
52 X11_dpms_INCLUDE_PATH, (in X11_Xext_LIB), X11_dpms_FOUND
53 X11_XShm_INCLUDE_PATH, (in X11_Xext_LIB), X11_XShm_FOUND
54 X11_Xshape_INCLUDE_PATH, (in X11_Xext_LIB), X11_Xshape_FOUND
55 X11_XSync_INCLUDE_PATH, (in X11_Xext_LIB), X11_XSync_FOUND
56 #]=======================================================================] 60 # X11 is never a framework and some header files may be
61 # found in tcl on the mac
62 set(CMAKE_FIND_FRAMEWORK_SAVE ${CMAKE_FIND_FRAMEWORK})
63 set(CMAKE_FIND_FRAMEWORK NEVER)
64 set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET})
65 set(CMAKE_REQUIRED_QUIET ${X11_FIND_QUIETLY})
66 set(X11_INC_SEARCH_PATH
72 /usr/openwin/share/include
73 /opt/graphics/OpenGL/include
77 set(X11_LIB_SEARCH_PATH
85 find_path(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH})
86 find_path(X11_Xlib_INCLUDE_PATH X11/Xlib.h ${X11_INC_SEARCH_PATH})
88 # Look
for includes; keep the list sorted by
name of the cmake *_INCLUDE_PATH
89 # variable (which doesn't need to match the include file name). 91 # Solaris lacks XKBrules.h, so we should skip kxkbd there. 92 find_path(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h ${X11_INC_SEARCH_PATH})
93 find_path(X11_SM_INCLUDE_PATH X11/SM/SM.h ${X11_INC_SEARCH_PATH})
94 find_path(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h ${X11_INC_SEARCH_PATH})
95 find_path(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h ${X11_INC_SEARCH_PATH})
96 find_path(X11_Xau_INCLUDE_PATH X11/Xauth.h ${X11_INC_SEARCH_PATH})
97 find_path(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h ${X11_INC_SEARCH_PATH})
98 find_path(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h ${X11_INC_SEARCH_PATH})
99 find_path(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h ${X11_INC_SEARCH_PATH})
100 find_path(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h ${X11_INC_SEARCH_PATH})
101 find_path(X11_Xext_INCLUDE_PATH X11/extensions/Xext.h ${X11_INC_SEARCH_PATH})
102 find_path(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h ${X11_INC_SEARCH_PATH})
103 find_path(X11_Xxf86misc_INCLUDE_PATH X11/extensions/xf86misc.h ${X11_INC_SEARCH_PATH})
104 find_path(X11_Xxf86vm_INCLUDE_PATH X11/extensions/xf86vmode.h ${X11_INC_SEARCH_PATH})
105 find_path(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h ${X11_INC_SEARCH_PATH})
106 find_path(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h ${X11_INC_SEARCH_PATH})
107 find_path(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h ${X11_INC_SEARCH_PATH})
108 find_path(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h ${X11_INC_SEARCH_PATH})
109 find_path(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h ${X11_INC_SEARCH_PATH})
110 find_path(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h ${X11_INC_SEARCH_PATH})
111 find_path(X11_xkbfile_INCLUDE_PATH X11/extensions/XKBfile.h ${X11_INC_SEARCH_PATH})
112 find_path(X11_Xmu_INCLUDE_PATH X11/Xmu/Xmu.h ${X11_INC_SEARCH_PATH})
113 find_path(X11_Xpm_INCLUDE_PATH X11/xpm.h ${X11_INC_SEARCH_PATH})
114 find_path(X11_Xtst_INCLUDE_PATH X11/extensions/XTest.h ${X11_INC_SEARCH_PATH})
115 find_path(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h ${X11_INC_SEARCH_PATH})
116 find_path(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h ${X11_INC_SEARCH_PATH})
117 find_path(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h ${X11_INC_SEARCH_PATH})
118 find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h ${X11_INC_SEARCH_PATH})
119 find_path(X11_Xss_INCLUDE_PATH X11/extensions/scrnsaver.h ${X11_INC_SEARCH_PATH})
120 find_path(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h ${X11_INC_SEARCH_PATH})
121 find_path(X11_Xutil_INCLUDE_PATH X11/Xutil.h ${X11_INC_SEARCH_PATH})
122 find_path(X11_Xt_INCLUDE_PATH X11/Intrinsic.h ${X11_INC_SEARCH_PATH})
123 find_path(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h ${X11_INC_SEARCH_PATH})
124 find_path(X11_XSync_INCLUDE_PATH X11/extensions/sync.h ${X11_INC_SEARCH_PATH})
126 # Backwards compatibility.
127 set(X11_Xinput_INCLUDE_PATH
"${X11_Xi_INCLUDE_PATH}")
128 set(X11_xf86misc_INCLUDE_PATH
"${X11_Xxf86misc_INCLUDE_PATH}")
129 set(X11_xf86vmode_INCLUDE_PATH
"${X11_Xxf8vm_INCLUDE_PATH}")
130 set(X11_Xkbfile_INCLUDE_PATH
"${X11_xkbfile_INCLUDE_PATH}")
131 set(X11_XTest_INCLUDE_PATH
"${X11_Xtst_INCLUDE_PATH}")
132 set(X11_Xscreensaver_INCLUDE_PATH
"${X11_Xss_INCLUDE_PATH}")
134 find_library(X11_X11_LIB X11 ${X11_LIB_SEARCH_PATH})
136 # Find additional X libraries. Keep list sorted by library
name.
137 find_library(X11_ICE_LIB ICE ${X11_LIB_SEARCH_PATH})
138 find_library(X11_SM_LIB SM ${X11_LIB_SEARCH_PATH})
139 find_library(X11_Xau_LIB Xau ${X11_LIB_SEARCH_PATH})
140 find_library(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH})
141 find_library(X11_Xcursor_LIB Xcursor ${X11_LIB_SEARCH_PATH})
142 find_library(X11_Xdamage_LIB Xdamage ${X11_LIB_SEARCH_PATH})
143 find_library(X11_Xdmcp_LIB Xdmcp ${X11_LIB_SEARCH_PATH})
144 find_library(X11_Xext_LIB Xext ${X11_LIB_SEARCH_PATH})
145 find_library(X11_Xfixes_LIB Xfixes ${X11_LIB_SEARCH_PATH})
146 find_library(X11_Xft_LIB Xft ${X11_LIB_SEARCH_PATH})
147 find_library(X11_Xi_LIB Xi ${X11_LIB_SEARCH_PATH})
148 find_library(X11_Xinerama_LIB Xinerama ${X11_LIB_SEARCH_PATH})
149 find_library(X11_xkbfile_LIB xkbfile ${X11_LIB_SEARCH_PATH})
150 find_library(X11_Xmu_LIB Xmu ${X11_LIB_SEARCH_PATH})
151 find_library(X11_Xpm_LIB Xpm ${X11_LIB_SEARCH_PATH})
152 find_library(X11_Xrandr_LIB Xrandr ${X11_LIB_SEARCH_PATH})
153 find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
154 find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH})
155 find_library(X11_Xss_LIB Xss ${X11_LIB_SEARCH_PATH})
156 find_library(X11_Xt_LIB Xt ${X11_LIB_SEARCH_PATH})
157 find_library(X11_Xtst_LIB Xtst ${X11_LIB_SEARCH_PATH})
158 find_library(X11_Xv_LIB Xv ${X11_LIB_SEARCH_PATH})
159 find_library(X11_Xxf86misc_LIB Xxf86misc ${X11_LIB_SEARCH_PATH})
160 find_library(X11_Xxf86vm_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
162 # Backwards compatibility.
163 set(X11_Xinput_LIB
"${X11_Xi_LIB}")
164 set(X11_Xkbfile_LIB
"${X11_xkbfile_LIB}")
165 set(X11_XTest_LIB
"${X11_Xtst_LIB}")
166 set(X11_Xscreensaver_LIB
"${X11_Xss_LIB}")
168 set(X11_LIBRARY_DIR
"")
170 get_filename_component(X11_LIBRARY_DIR ${X11_X11_LIB} PATH)
173 set(X11_INCLUDE_DIR)
# start with empty list 174 if(X11_X11_INCLUDE_PATH)
175 list(APPEND X11_INCLUDE_DIR ${X11_X11_INCLUDE_PATH})
178 if(X11_Xlib_INCLUDE_PATH)
179 list(APPEND X11_INCLUDE_DIR ${X11_Xlib_INCLUDE_PATH})
182 if(X11_Xutil_INCLUDE_PATH)
183 set(X11_Xutil_FOUND TRUE)
184 list(APPEND X11_INCLUDE_DIR ${X11_Xutil_INCLUDE_PATH})
187 if(X11_Xshape_INCLUDE_PATH)
188 set(X11_Xshape_FOUND TRUE)
189 list(APPEND X11_INCLUDE_DIR ${X11_Xshape_INCLUDE_PATH})
192 set(X11_LIBRARIES)
# start with empty list 194 list(APPEND X11_LIBRARIES ${X11_X11_LIB})
198 set(X11_Xext_FOUND TRUE)
199 list(APPEND X11_LIBRARIES ${X11_Xext_LIB})
202 if(X11_Xt_LIB AND X11_Xt_INCLUDE_PATH)
203 set(X11_Xt_FOUND TRUE)
206 if(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH)
207 find_package(Freetype QUIET)
208 find_package(Fontconfig QUIET)
209 if (FREETYPE_FOUND AND FONTCONFIG_FOUND)
210 set(X11_Xft_FOUND TRUE)
212 list(APPEND X11_INCLUDE_DIR ${X11_Xft_INCLUDE_PATH})
215 if(X11_Xv_LIB AND X11_Xv_INCLUDE_PATH)
216 set(X11_Xv_FOUND TRUE)
217 list(APPEND X11_INCLUDE_DIR ${X11_Xv_INCLUDE_PATH})
220 if (X11_Xau_LIB AND X11_Xau_INCLUDE_PATH)
221 set(X11_Xau_FOUND TRUE)
224 if (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB)
225 set(X11_Xdmcp_FOUND TRUE)
226 list(APPEND X11_INCLUDE_DIR ${X11_Xdmcp_INCLUDE_PATH})
229 if (X11_Xaccessrules_INCLUDE_PATH AND X11_Xaccessstr_INCLUDE_PATH)
230 set(X11_Xaccess_FOUND TRUE)
231 set(X11_Xaccess_INCLUDE_PATH ${X11_Xaccessstr_INCLUDE_PATH})
232 list(APPEND X11_INCLUDE_DIR ${X11_Xaccess_INCLUDE_PATH})
235 if (X11_Xpm_INCLUDE_PATH AND X11_Xpm_LIB)
236 set(X11_Xpm_FOUND TRUE)
237 list(APPEND X11_INCLUDE_DIR ${X11_Xpm_INCLUDE_PATH})
240 if (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB)
241 set(X11_Xcomposite_FOUND TRUE)
242 list(APPEND X11_INCLUDE_DIR ${X11_Xcomposite_INCLUDE_PATH})
245 if (X11_Xdamage_INCLUDE_PATH AND X11_Xdamage_LIB)
246 set(X11_Xdamage_FOUND TRUE)
247 list(APPEND X11_INCLUDE_DIR ${X11_Xdamage_INCLUDE_PATH})
250 if (X11_XShm_INCLUDE_PATH)
251 set(X11_XShm_FOUND TRUE)
252 list(APPEND X11_INCLUDE_DIR ${X11_XShm_INCLUDE_PATH})
255 if (X11_Xtst_INCLUDE_PATH AND X11_Xtst_LIB)
256 set(X11_Xtst_FOUND TRUE)
257 # Backwards compatibility. 258 set(X11_XTest_FOUND TRUE)
259 list(APPEND X11_INCLUDE_DIR ${X11_Xtst_INCLUDE_PATH})
262 if (X11_Xi_INCLUDE_PATH AND X11_Xi_LIB)
263 set(X11_Xi_FOUND TRUE)
264 # Backwards compatibility. 265 set(X11_Xinput_FOUND TRUE)
266 list(APPEND X11_INCLUDE_DIR ${X11_Xi_INCLUDE_PATH})
269 if (X11_Xinerama_INCLUDE_PATH AND X11_Xinerama_LIB)
270 set(X11_Xinerama_FOUND TRUE)
271 list(APPEND X11_INCLUDE_DIR ${X11_Xinerama_INCLUDE_PATH})
274 if (X11_Xfixes_INCLUDE_PATH AND X11_Xfixes_LIB)
275 set(X11_Xfixes_FOUND TRUE)
276 list(APPEND X11_INCLUDE_DIR ${X11_Xfixes_INCLUDE_PATH})
279 if (X11_Xrender_INCLUDE_PATH AND X11_Xrender_LIB)
280 set(X11_Xrender_FOUND TRUE)
281 list(APPEND X11_INCLUDE_DIR ${X11_Xrender_INCLUDE_PATH})
284 if (X11_XRes_INCLUDE_PATH AND X11_XRes_LIB)
285 set(X11_XRes_FOUND TRUE)
286 list(APPEND X11_INCLUDE_DIR ${X11_XRes_INCLUDE_PATH})
289 if (X11_Xrandr_INCLUDE_PATH AND X11_Xrandr_LIB)
290 set(X11_Xrandr_FOUND TRUE)
291 list(APPEND X11_INCLUDE_DIR ${X11_Xrandr_INCLUDE_PATH})
294 if (X11_Xxf86misc_INCLUDE_PATH AND X11_Xxf86misc_LIB)
295 set(X11_Xxf86misc_FOUND TRUE)
296 # Backwards compatibility. 297 set(X11_xf86misc_FOUND TRUE)
298 list(APPEND X11_INCLUDE_DIR ${X11_Xxf86misc_INCLUDE_PATH})
301 if (X11_Xxf86vm_INCLUDE_PATH AND X11_Xxf86vm_LIB)
302 set(X11_Xxf86vm_FOUND TRUE)
303 # Backwards compatibility. 304 set(X11_xf86vmode_FOUND TRUE)
305 list(APPEND X11_INCLUDE_DIR ${X11_Xxf86vm_INCLUDE_PATH})
308 if (X11_Xcursor_INCLUDE_PATH AND X11_Xcursor_LIB)
309 set(X11_Xcursor_FOUND TRUE)
310 list(APPEND X11_INCLUDE_DIR ${X11_Xcursor_INCLUDE_PATH})
313 if (X11_Xss_INCLUDE_PATH AND X11_Xss_LIB)
314 set(X11_Xss_FOUND TRUE)
315 set(X11_Xscreensaver_FOUND TRUE)
316 list(APPEND X11_INCLUDE_DIR ${X11_Xss_INCLUDE_PATH})
319 if (X11_dpms_INCLUDE_PATH)
320 set(X11_dpms_FOUND TRUE)
321 list(APPEND X11_INCLUDE_DIR ${X11_dpms_INCLUDE_PATH})
324 if (X11_Xkb_INCLUDE_PATH AND X11_Xkblib_INCLUDE_PATH AND X11_Xlib_INCLUDE_PATH)
325 set(X11_Xkb_FOUND TRUE)
326 list(APPEND X11_INCLUDE_DIR ${X11_Xkb_INCLUDE_PATH} )
329 if (X11_xkbfile_INCLUDE_PATH AND X11_xkbfile_LIB AND X11_Xlib_INCLUDE_PATH)
330 set(X11_xkbfile_FOUND TRUE)
331 # Backwards compatibility. 332 set(X11_Xkbfile_FOUND TRUE)
333 list(APPEND X11_INCLUDE_DIR ${X11_xkbfile_INCLUDE_PATH} )
336 if (X11_Xmu_INCLUDE_PATH AND X11_Xmu_LIB)
337 set(X11_Xmu_FOUND TRUE)
338 list(APPEND X11_INCLUDE_DIR ${X11_Xmu_INCLUDE_PATH})
341 if (X11_XSync_INCLUDE_PATH)
342 set(X11_XSync_FOUND TRUE)
343 list(APPEND X11_INCLUDE_DIR ${X11_XSync_INCLUDE_PATH})
346 if(X11_ICE_LIB AND X11_ICE_INCLUDE_PATH)
347 set(X11_ICE_FOUND TRUE)
350 if(X11_SM_LIB AND X11_SM_INCLUDE_PATH)
351 set(X11_SM_FOUND TRUE)
354 # Most of the X11 headers will be in the same directories, avoid 355 # creating a huge list of duplicates. 357 list(REMOVE_DUPLICATES X11_INCLUDE_DIR)
360 # Deprecated variable for backwards compatibility with CMake 1.4 361 if (X11_X11_INCLUDE_PATH AND X11_LIBRARIES)
365 include(FindPackageHandleStandardArgs)
366 find_package_handle_standard_args(X11
367 REQUIRED_VARS X11_X11_INCLUDE_PATH X11_X11_LIB
371 include(CheckFunctionExists)
372 include(CheckLibraryExists)
374 # Translated from an autoconf-generated configure script. 375 # See libs.m4 in autoconf's m4 directory. 376 if($ENV{ISC} MATCHES
"^yes$")
377 set(X11_X_EXTRA_LIBS -lnsl_s -linet)
379 set(X11_X_EXTRA_LIBS
"")
381 # See
if XOpenDisplay in X11 works by itself.
382 check_library_exists(
"${X11_LIBRARIES}" "XOpenDisplay" "${X11_LIBRARY_DIR}" X11_LIB_X11_SOLO)
383 if(NOT X11_LIB_X11_SOLO)
384 # Find library needed for dnet_ntoa. 385 check_library_exists(
"dnet" "dnet_ntoa" "" X11_LIB_DNET_HAS_DNET_NTOA)
386 if (X11_LIB_DNET_HAS_DNET_NTOA)
387 list(APPEND X11_X_EXTRA_LIBS -ldnet)
389 check_library_exists(
"dnet_stub" "dnet_ntoa" "" X11_LIB_DNET_STUB_HAS_DNET_NTOA)
390 if (X11_LIB_DNET_STUB_HAS_DNET_NTOA)
391 list(APPEND X11_X_EXTRA_LIBS -ldnet_stub)
396 # Find library needed for gethostbyname. 397 check_function_exists(
"gethostbyname" CMAKE_HAVE_GETHOSTBYNAME)
398 if(NOT CMAKE_HAVE_GETHOSTBYNAME)
399 check_library_exists(
"nsl" "gethostbyname" "" CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)
400 if (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)
401 list(APPEND X11_X_EXTRA_LIBS -lnsl)
403 check_library_exists(
"bsd" "gethostbyname" "" CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)
404 if (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)
405 list(APPEND X11_X_EXTRA_LIBS -lbsd)
410 # Find library needed for connect. 411 check_function_exists(
"connect" CMAKE_HAVE_CONNECT)
412 if(NOT CMAKE_HAVE_CONNECT)
413 check_library_exists(
"socket" "connect" "" CMAKE_LIB_SOCKET_HAS_CONNECT)
414 if (CMAKE_LIB_SOCKET_HAS_CONNECT)
415 list(INSERT X11_X_EXTRA_LIBS 0 -lsocket)
419 # Find library needed for remove. 420 check_function_exists(
"remove" CMAKE_HAVE_REMOVE)
421 if(NOT CMAKE_HAVE_REMOVE)
422 check_library_exists(
"posix" "remove" "" CMAKE_LIB_POSIX_HAS_REMOVE)
423 if (CMAKE_LIB_POSIX_HAS_REMOVE)
424 list(APPEND X11_X_EXTRA_LIBS -lposix)
428 # Find library needed for shmat. 429 check_function_exists(
"shmat" CMAKE_HAVE_SHMAT)
430 if(NOT CMAKE_HAVE_SHMAT)
431 check_library_exists(
"ipc" "shmat" "" CMAKE_LIB_IPS_HAS_SHMAT)
432 if (CMAKE_LIB_IPS_HAS_SHMAT)
433 list(APPEND X11_X_EXTRA_LIBS -lipc)
439 check_library_exists("ICE" "IceConnectionNumber" "${X11_LIBRARY_DIR}
" 440 CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) 441 if(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) 442 set (X11_X_PRE_LIBS ${X11_ICE_LIB}) 444 list(INSERT X11_X_PRE_LIBS 0 ${X11_SM_LIB}) 449 # Build the final list of libraries. 450 set(X11_LIBRARIES ${X11_X_PRE_LIBS} ${X11_LIBRARIES} ${X11_X_EXTRA_LIBS}) 452 if (NOT TARGET X11::X11) 453 add_library(X11::X11 UNKNOWN IMPORTED) 454 set_target_properties(X11::X11 PROPERTIES 455 IMPORTED_LOCATION "${X11_X11_LIB}
" 456 INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_INCLUDE_PATH}
") 460 if (X11_ICE_FOUND AND NOT TARGET X11::ICE) 461 add_library(X11::ICE UNKNOWN IMPORTED) 462 set_target_properties(X11::ICE PROPERTIES 463 IMPORTED_LOCATION "${X11_ICE_LIB}
" 464 INTERFACE_INCLUDE_DIRECTORIES "${X11_ICE_INCLUDE_PATH}
") 467 if (X11_SM_FOUND AND NOT TARGET X11::SM) 468 add_library(X11::SM UNKNOWN IMPORTED) 469 set_target_properties(X11::SM PROPERTIES 470 IMPORTED_LOCATION "${X11_SM_LIB}
" 471 INTERFACE_INCLUDE_DIRECTORIES "${X11_SM_INCLUDE_PATH}
") 474 if (X11_Xau_FOUND AND NOT TARGET X11::Xau) 475 add_library(X11::Xau UNKNOWN IMPORTED) 476 set_target_properties(X11::Xau PROPERTIES 477 IMPORTED_LOCATION "${X11_Xau_LIB}
" 478 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xau_INCLUDE_PATH}
") 481 if (X11_Xcomposite_FOUND AND NOT TARGET X11::Xcomposite) 482 add_library(X11::Xcomposite UNKNOWN IMPORTED) 483 set_target_properties(X11::Xcomposite PROPERTIES 484 IMPORTED_LOCATION "${X11_Xcomposite_LIB}
" 485 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xcomposite_INCLUDE_PATH}
" 486 INTERFACE_LINK_LIBRARIES "X11::X11
") 489 if (X11_Xcursor_FOUND AND NOT TARGET X11::Xcursor) 490 add_library(X11::Xcursor UNKNOWN IMPORTED) 491 set_target_properties(X11::Xcursor PROPERTIES 492 IMPORTED_LOCATION "${X11_Xcursor_LIB}
" 493 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xcursor_INCLUDE_PATH}
" 494 INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::Xfixes;X11::X11
") 497 if (X11_Xdamage_FOUND AND NOT TARGET X11::Xdamage) 498 add_library(X11::Xdamage UNKNOWN IMPORTED) 499 set_target_properties(X11::Xdamage PROPERTIES 500 IMPORTED_LOCATION "${X11_Xdamage_LIB}
" 501 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xdamage_INCLUDE_PATH}
" 502 INTERFACE_LINK_LIBRARIES "X11::Xfixes;X11::X11
") 505 if (X11_Xdmcp_FOUND AND NOT TARGET X11::Xdmcp) 506 add_library(X11::Xdmcp UNKNOWN IMPORTED) 507 set_target_properties(X11::Xdmcp PROPERTIES 508 IMPORTED_LOCATION "${X11_Xdmcp_LIB}
" 509 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xdmcp_INCLUDE_PATH}
") 512 if (X11_Xext_FOUND AND NOT TARGET X11::Xext) 513 add_library(X11::Xext UNKNOWN IMPORTED) 514 set_target_properties(X11::Xext PROPERTIES 515 IMPORTED_LOCATION "${X11_Xext_LIB}
" 516 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xext_INCLUDE_PATH}
" 517 INTERFACE_LINK_LIBRARIES "X11::X11
") 520 if (X11_Xxf86misc_FOUND AND NOT TARGET X11::Xxf86misc) 521 add_library(X11::Xxf86misc UNKNOWN IMPORTED) 522 set_target_properties(X11::Xxf86misc PROPERTIES 523 IMPORTED_LOCATION "${X11_Xxf86misc_LIB}
" 524 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xxf86misc_INCLUDE_PATH}
" 525 INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext
") 528 if (X11_Xxf86vm_FOUND AND NOT TARGET X11::Xxf86vm) 529 add_library(X11::Xxf86vm UNKNOWN IMPORTED) 530 set_target_properties(X11::Xxf86vm PROPERTIES 531 IMPORTED_LOCATION "${X11_Xxf86vm_LIB}
" 532 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xxf86vm_INCLUDE_PATH}
" 533 INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext
") 536 if (X11_Xfixes_FOUND AND NOT TARGET X11::Xfixes) 537 add_library(X11::Xfixes UNKNOWN IMPORTED) 538 set_target_properties(X11::Xfixes PROPERTIES 539 IMPORTED_LOCATION "${X11_Xfixes_LIB}
" 540 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xfixes_INCLUDE_PATH}
" 541 INTERFACE_LINK_LIBRARIES "X11::X11
") 544 if (X11_Xft_FOUND AND NOT TARGET X11::Xft) 545 add_library(X11::Xft UNKNOWN IMPORTED) 546 set_target_properties(X11::Xft PROPERTIES 547 IMPORTED_LOCATION "${X11_Xft_LIB}
" 548 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xft_INCLUDE_PATH}
" 549 INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::X11;Fontconfig::Fontconfig;Freetype::Freetype
") 552 if (X11_Xi_FOUND AND NOT TARGET X11::Xi) 553 add_library(X11::Xi UNKNOWN IMPORTED) 554 set_target_properties(X11::Xi PROPERTIES 555 IMPORTED_LOCATION "${X11_Xi_LIB}
" 556 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xi_INCLUDE_PATH}
" 557 INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11
") 560 if (X11_Xinerama_FOUND AND NOT TARGET X11::Xinerama) 561 add_library(X11::Xinerama UNKNOWN IMPORTED) 562 set_target_properties(X11::Xinerama PROPERTIES 563 IMPORTED_LOCATION "${X11_Xinerama_LIB}
" 564 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xinerama_INCLUDE_PATH}
" 565 INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11
") 568 if (X11_Xkb_FOUND AND NOT TARGET X11::Xkb) 569 add_library(X11::Xkb INTERFACE IMPORTED) 570 set_target_properties(X11::Xkb PROPERTIES 571 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xkb_INCLUDE_PATH}
" 572 INTERFACE_LINK_LIBRARIES "X11::X11
") 575 if (X11_xkbfile_FOUND AND NOT TARGET X11::xkbfile) 576 add_library(X11::xkbfile UNKNOWN IMPORTED) 577 set_target_properties(X11::xkbfile PROPERTIES 578 IMPORTED_LOCATION "${X11_xkbfile_LIB}
" 579 INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbfile_INCLUDE_PATH}
" 580 INTERFACE_LINK_LIBRARIES "X11::X11
") 583 if (X11_Xmu_FOUND AND NOT TARGET X11::Xmu) 584 add_library(X11::Xmu UNKNOWN IMPORTED) 585 set_target_properties(X11::Xmu PROPERTIES 586 IMPORTED_LOCATION "${X11_Xmu_LIB}
" 587 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xmu_INCLUDE_PATH}
" 588 INTERFACE_LINK_LIBRARIES "X11::Xt;X11::Xext;X11::X11
") 591 if (X11_Xpm_FOUND AND NOT TARGET X11::Xpm) 592 add_library(X11::Xpm UNKNOWN IMPORTED) 593 set_target_properties(X11::Xpm PROPERTIES 594 IMPORTED_LOCATION "${X11_Xpm_LIB}
" 595 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xpm_INCLUDE_PATH}
" 596 INTERFACE_LINK_LIBRARIES "X11::X11
") 599 if (X11_Xtst_FOUND AND NOT TARGET X11::Xtst) 600 add_library(X11::Xtst UNKNOWN IMPORTED) 601 set_target_properties(X11::Xtst PROPERTIES 602 IMPORTED_LOCATION "${X11_Xtst_LIB}
" 603 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xtst_INCLUDE_PATH}
" 604 INTERFACE_LINK_LIBRARIES "X11::Xi;X11::Xext;X11::X11
") 607 if (X11_Xrandr_FOUND AND NOT TARGET X11::Xrandr) 608 add_library(X11::Xrandr UNKNOWN IMPORTED) 609 set_target_properties(X11::Xrandr PROPERTIES 610 IMPORTED_LOCATION "${X11_Xrandr_LIB}
" 611 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xrandr_INCLUDE_PATH}
" 612 INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::Xext;X11::X11
") 615 if (X11_Xrender_FOUND AND NOT TARGET X11::Xrender) 616 add_library(X11::Xrender UNKNOWN IMPORTED) 617 set_target_properties(X11::Xrender PROPERTIES 618 IMPORTED_LOCATION "${X11_Xrender_LIB}
" 619 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xrender_INCLUDE_PATH}
" 620 INTERFACE_LINK_LIBRARIES "X11::X11
") 623 if (X11_XRes_FOUND AND NOT TARGET X11::XRes) 624 add_library(X11::XRes UNKNOWN IMPORTED) 625 set_target_properties(X11::XRes PROPERTIES 626 IMPORTED_LOCATION "${X11_XRes_LIB}
" 627 INTERFACE_INCLUDE_DIRECTORIES "${X11_XRes_INCLUDE_PATH}
" 628 INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11
") 631 if (X11_Xss_FOUND AND NOT TARGET X11::Xss) 632 add_library(X11::Xss UNKNOWN IMPORTED) 633 set_target_properties(X11::Xss PROPERTIES 634 IMPORTED_LOCATION "${X11_Xss_LIB}
" 635 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xss_INCLUDE_PATH}
" 636 INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11
") 639 if (X11_Xt_FOUND AND NOT TARGET X11::Xt) 640 add_library(X11::Xt UNKNOWN IMPORTED) 641 set_target_properties(X11::Xt PROPERTIES 642 IMPORTED_LOCATION "${X11_Xt_LIB}
" 643 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xt_INCLUDE_PATH}
" 644 INTERFACE_LINK_LIBRARIES "X11::ICE;X11::SM;X11::X11
") 647 if (X11_Xutil_FOUND AND NOT TARGET X11::Xutil) 648 add_library(X11::Xutil INTERFACE IMPORTED) 649 set_target_properties(X11::Xutil PROPERTIES 650 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xutil_INCLUDE_PATH}
" 651 # libX11 contains the implementations for functions in the Xutil.h 653 INTERFACE_LINK_LIBRARIES "X11::X11
") 656 if (X11_Xv_FOUND AND NOT TARGET X11::Xv) 657 add_library(X11::Xv UNKNOWN IMPORTED) 658 set_target_properties(X11::Xv PROPERTIES 659 IMPORTED_LOCATION "${X11_Xv_LIB}
" 660 INTERFACE_INCLUDE_DIRECTORIES "${X11_Xv_INCLUDE_PATH}
" 661 INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11
") 667 X11_Xext_INCLUDE_PATH 671 X11_Xlib_INCLUDE_PATH 672 X11_Xutil_INCLUDE_PATH 673 X11_Xcomposite_INCLUDE_PATH 676 X11_Xfixes_INCLUDE_PATH 678 X11_Xrandr_INCLUDE_PATH 680 X11_Xdamage_INCLUDE_PATH 682 X11_Xrender_INCLUDE_PATH 684 X11_XRes_INCLUDE_PATH 686 X11_Xxf86misc_INCLUDE_PATH 688 X11_Xxf86vm_INCLUDE_PATH 692 X11_Xinerama_INCLUDE_PATH 694 X11_Xtst_INCLUDE_PATH 696 X11_Xcursor_INCLUDE_PATH 697 X11_dpms_INCLUDE_PATH 702 X11_Xaccessrules_INCLUDE_PATH 703 X11_Xaccessstr_INCLUDE_PATH 704 X11_Xdmcp_INCLUDE_PATH 706 X11_Xkblib_INCLUDE_PATH 707 X11_xkbfile_INCLUDE_PATH 717 X11_Xshape_INCLUDE_PATH 720 X11_XShm_INCLUDE_PATH 725 X11_XSync_INCLUDE_PATH 727 set(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_SAVE}) 728 set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE})