FindX11: Add missing Xpresent

The Xlib interface to the Xpresent extension was missing from the FindX11 module, so I put it in. The xcb interface is already present.
Xpresent project page: https://gitlab.freedesktop.org/xorg/lib/libxpresent
This commit is contained in:
Komasan Zura 2025-01-19 23:08:03 -05:00
parent 2994eb88c3
commit f2873fcf98
3 changed files with 32 additions and 0 deletions

View File

@ -80,6 +80,7 @@ and also the following more fine grained variables and targets:
X11_xkbfile_INCLUDE_PATH, X11_xkbfile_LIB, X11_xkbfile_FOUND, X11::xkbfile
X11_Xmu_INCLUDE_PATH, X11_Xmu_LIB, X11_Xmu_FOUND, X11::Xmu
X11_Xpm_INCLUDE_PATH, X11_Xpm_LIB, X11_Xpm_FOUND, X11::Xpm
X11_Xpresent_INCLUDE_PATH, X11_Xpresent_LIB, X11_Xpresent_FOUND, X11::Xpresent
X11_Xtst_INCLUDE_PATH, X11_Xtst_LIB, X11_Xtst_FOUND, X11::Xtst
X11_Xrandr_INCLUDE_PATH, X11_Xrandr_LIB, X11_Xrandr_FOUND, X11::Xrandr
X11_Xrender_INCLUDE_PATH, X11_Xrender_LIB, X11_Xrender_FOUND, X11::Xrender
@ -222,6 +223,7 @@ if (UNIX)
find_path(X11_xkbfile_INCLUDE_PATH X11/extensions/XKBfile.h ${X11_INC_SEARCH_PATH})
find_path(X11_Xmu_INCLUDE_PATH X11/Xmu/Xmu.h ${X11_INC_SEARCH_PATH})
find_path(X11_Xpm_INCLUDE_PATH X11/xpm.h ${X11_INC_SEARCH_PATH})
find_path(X11_Xpresent_INCLUDE_PATH X11/extensions/Xpresent.h ${X11_INC_SEARCH_PATH})
find_path(X11_Xtst_INCLUDE_PATH X11/extensions/XTest.h ${X11_INC_SEARCH_PATH})
find_path(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h ${X11_INC_SEARCH_PATH})
find_path(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h ${X11_INC_SEARCH_PATH})
@ -299,6 +301,7 @@ if (UNIX)
find_library(X11_xkbfile_LIB xkbfile ${X11_LIB_SEARCH_PATH})
find_library(X11_Xmu_LIB Xmu ${X11_LIB_SEARCH_PATH})
find_library(X11_Xpm_LIB Xpm ${X11_LIB_SEARCH_PATH})
find_library(X11_Xpresent_LIB Xpresent ${X11_LIB_SEARCH_PATH})
find_library(X11_Xrandr_LIB Xrandr ${X11_LIB_SEARCH_PATH})
find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH})
@ -523,6 +526,11 @@ if (UNIX)
list(APPEND X11_INCLUDE_DIR ${X11_Xpm_INCLUDE_PATH})
endif ()
if (X11_Xpresent_INCLUDE_PATH AND X11_Xpresent_LIB)
set(X11_Xpresent_FOUND TRUE)
list(APPEND X11_INCLUDE_DIR ${X11_Xpresent_INCLUDE_PATH})
endif ()
if (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB)
set(X11_Xcomposite_FOUND TRUE)
list(APPEND X11_INCLUDE_DIR ${X11_Xcomposite_INCLUDE_PATH})
@ -1169,6 +1177,14 @@ if (UNIX)
INTERFACE_LINK_LIBRARIES "X11::X11")
endif ()
if (X11_Xpresent_FOUND AND NOT TARGET X11::Xpresent)
add_library(X11::Xpresent UNKNOWN IMPORTED)
set_target_properties(X11::Xpresent PROPERTIES
IMPORTED_LOCATION "${X11_Xpresent_LIB}"
INTERFACE_INCLUDE_DIRECTORIES "${X11_Xpresent_INCLUDE_PATH}"
INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext;X11::Xfixes;X11::Xrandr")
endif ()
if (X11_Xtst_FOUND AND NOT TARGET X11::Xtst)
add_library(X11::Xtst UNKNOWN IMPORTED)
set_target_properties(X11::Xtst PROPERTIES
@ -1356,6 +1372,8 @@ if (UNIX)
X11_Xss_LIB
X11_Xpm_INCLUDE_PATH
X11_Xpm_LIB
X11_Xpresent_INCLUDE_PATH
X11_Xpresent_LIB
X11_Xft_LIB
X11_Xft_INCLUDE_PATH
X11_Xshape_INCLUDE_PATH

View File

@ -82,6 +82,7 @@ test_x11_component(x11_components Xkb)
test_x11_component(x11_components xkbfile)
test_x11_component(x11_components Xmu)
test_x11_component(x11_components Xpm)
test_x11_component(x11_components Xpresent)
test_x11_component(x11_components Xtst)
test_x11_component(x11_components Xrandr)
test_x11_component(x11_components Xrender)
@ -147,6 +148,7 @@ foreach(lib
xkbfile
Xmu
Xpm
Xpresent
Xtst
Xrandr
Xrender

View File

@ -201,6 +201,15 @@ static int test_Xpm(void)
}
#endif
#ifdef HAVE_X11_Xpresent
# include <X11/extensions/Xpresent.h>
static int test_Xpresent(void)
{
return XPresentVersion();
}
#endif
#ifdef HAVE_X11_Xtst
# include <X11/extensions/XTest.h>
@ -881,6 +890,9 @@ int main(int argc, char* argv[])
#ifdef HAVE_X11_Xpm
test_Xpm,
#endif
#ifdef HAVE_X11_Xpresent
test_Xpresent,
#endif
#ifdef HAVE_X11_Xtst
test_Xtst,
#endif