forked from enlightenment/efl
parent
e34f36be12
commit
bcdde959e6
3 changed files with 172 additions and 0 deletions
@ -0,0 +1,110 @@ |
||||
include(FindX11) |
||||
|
||||
EFL_OPTION(XGESTURE "Whenever you want ecore_x to use gesture" OFF) |
||||
EFL_OPTION(XPRESENT "Whenever you want ecore_x to use xpresent" OFF) |
||||
EFL_OPTION(XINPUT2 "Whenever you want ecore_x to use xinput2" ON) |
||||
EFL_OPTION(XINPUT22 "Whenever you want ecore_x to use xinput22" OFF) |
||||
|
||||
#the rest is just statically enabled |
||||
CHECK_APPEND_DEFINE(HAVE_ECORE_X_XLIB ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XKB ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XCOMPOSITE ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XDAMAGE ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XDPMS ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XFIXES ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XINERAMA ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XRANDR ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XSS ON) |
||||
CHECK_APPEND_DEFINE(ECORE_XTEST ON) |
||||
|
||||
#FindX11 does not cover all parts we need so here are the 4 extensions we need to check |
||||
|
||||
#copied from https://github.com/Kitware/CMake/blob/master/Modules/FindX11.cmake#L65 |
||||
set(X11_INC_SEARCH_PATH |
||||
/usr/pkg/xorg/include |
||||
/usr/X11R6/include |
||||
/usr/X11R7/include |
||||
/usr/include/X11 |
||||
/usr/openwin/include |
||||
/usr/openwin/share/include |
||||
/opt/graphics/OpenGL/include |
||||
/opt/X11/include |
||||
) |
||||
|
||||
set(X11_LIB_SEARCH_PATH |
||||
/usr/pkg/xorg/lib |
||||
/usr/X11R6/lib |
||||
/usr/X11R7/lib |
||||
/usr/openwin/lib |
||||
/opt/X11/lib |
||||
) |
||||
|
||||
macro(find_lib_and_include name path lib) |
||||
string(TOUPPER ${name} ecore_name) |
||||
set(X11_${name}_FOUND OFF) |
||||
find_library(X11_${name}_LIB ${lib} ${X11_LIB_SEARCH_PATH}) |
||||
find_path(X11_${name}_INCLUDE_PATH X11/extensions/${path} ${X11_INC_SEARCH_PATH}) |
||||
if (X11_${name}_LIB AND X11_${name}_INCLUDE_PATH) |
||||
set(X11_${name}_FOUND ON) |
||||
endif() |
||||
|
||||
CHECK_APPEND_DEFINE(ECORE_${ecore_name} ON) |
||||
endmacro() |
||||
|
||||
if (${XGESTURE}) |
||||
find_lib_and_include(XGesture gesture.h Xgesture) |
||||
endif() |
||||
|
||||
if(${XPRESENT}) |
||||
find_lib_and_include(Xpresent Xpresent.h Xpresent) |
||||
endif() |
||||
|
||||
if(${XINPUT2}) |
||||
find_lib_and_include(Xi2 XInput2.h Xi) |
||||
endif() |
||||
|
||||
if(${XINPUT22}) |
||||
find_lib_and_include(Xi2_2 Xpresent2.h Xi) |
||||
endif() |
||||
|
||||
#build a list of all components we use |
||||
set(_X_EXTENSIONS |
||||
X11 |
||||
X11_Xkb |
||||
X11_Xcomposite |
||||
X11_Xdamage |
||||
X11_dpms |
||||
X11_Xfixes |
||||
X11_Xinerama |
||||
X11_Xrandr |
||||
X11_Xrender |
||||
X11_XTest |
||||
X11_Xscreensaver |
||||
) |
||||
|
||||
if(${XGESTURE}) |
||||
list(APPEND _X_EXTENSIONS X11_Xgesture) |
||||
endif() |
||||
|
||||
if(${XPRESENT}) |
||||
list(APPEND _X_EXTENSIONS X11_Xpresent) |
||||
endif() |
||||
|
||||
if(${XINPUT2}) |
||||
list(APPEND _X_EXTENSIONS X11_Xi2) |
||||
endif() |
||||
|
||||
if(${XINPUT22}) |
||||
list(APPEND _X_EXTENSIONS X11_Xi2_2) |
||||
endif() |
||||
|
||||
foreach(ext ${_X_EXTENSIONS}) |
||||
if (NOT ${ext}_FOUND) |
||||
message(FATAL_ERROR "Xserver extension ${ext} not found") |
||||
endif() |
||||
list(APPEND X_EXTENSIONS find-${ext}) |
||||
endforeach() |
||||
|
||||
configure_file( |
||||
${PROJECT_SOURCE_DIR}/src/lib/ecore_x/ecore_x_version.h.cmake |
||||
${PROJECT_BINARY_DIR}/src/lib/ecore_x/ecore_x_version.h) |
@ -0,0 +1,61 @@ |
||||
set(PUBLIC_LIBRARIES |
||||
eina |
||||
ecore |
||||
) |
||||
|
||||
set(LIBRARIES |
||||
ecore |
||||
ecore_input |
||||
efl |
||||
eo |
||||
${X_EXTENSIONS} |
||||
) |
||||
|
||||
message("${LIBRARIES}") |
||||
|
||||
#todo XRANDR_GOOD |
||||
|
||||
set(PUBLIC_HEADERS |
||||
Ecore_X.h |
||||
# ecore_x_version.h |
||||
Ecore_X_Atoms.h |
||||
Ecore_X_Cursor.h |
||||
) |
||||
|
||||
set(SOURCES |
||||
ecore_x_atoms_decl.h |
||||
ecore_x.c |
||||
ecore_x_dnd.c |
||||
ecore_x_sync.c |
||||
ecore_x_randr.c |
||||
ecore_x_fixes.c |
||||
ecore_x_damage.c |
||||
ecore_x_composite.c |
||||
ecore_x_error.c |
||||
ecore_x_events.c |
||||
ecore_x_icccm.c |
||||
ecore_x_keygrab.c |
||||
ecore_x_netwm.c |
||||
ecore_x_mwm.c |
||||
ecore_x_e.c |
||||
ecore_x_selection.c |
||||
ecore_x_window.c |
||||
ecore_x_window_prop.c |
||||
ecore_x_window_shape.c |
||||
ecore_x_pixmap.c |
||||
ecore_x_present.c |
||||
ecore_x_gc.c |
||||
ecore_x_xinerama.c |
||||
ecore_x_screensaver.c |
||||
ecore_x_dpms.c |
||||
ecore_x_drawable.c |
||||
ecore_x_cursor.c |
||||
ecore_x_test.c |
||||
ecore_x_atoms.c |
||||
ecore_x_region.c |
||||
ecore_x_image.c |
||||
ecore_x_xi2.c |
||||
ecore_x_vsync.c |
||||
ecore_x_gesture.c |
||||
ecore_x_private.h |
||||
) |
Loading…
Reference in new issue