summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-02-03 19:23:47 +0100
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-02-07 09:24:52 +0100
commitbcdde959e6f43c49d520a5ec5b32aca91affa5ca (patch)
treecfe14b6b169adfcb5854eed7858cf84e952e28cf
parente34f36be12d4f32ea5d70ff8a763b37bed818083 (diff)
downloadefl-bcdde959e6f43c49d520a5ec5b32aca91affa5ca.tar.gz
cmake: add ecore_x
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake/config/ecore_x.cmake110
-rw-r--r--src/lib/ecore_x/CMakeLists.txt61
3 files changed, 172 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f57dfc7899..48c890e811 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,6 +53,7 @@ EFL_LIB(embryo)
EFL_LIB(ector)
EFL_LIB(eeze)
EFL_LIB(ecore_input)
+EFL_LIB(ecore_x)
EFL_OPTIONS_SUMMARY()
diff --git a/cmake/config/ecore_x.cmake b/cmake/config/ecore_x.cmake
new file mode 100644
index 0000000000..e95e6b2aba
--- /dev/null
+++ b/cmake/config/ecore_x.cmake
@@ -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)
diff --git a/src/lib/ecore_x/CMakeLists.txt b/src/lib/ecore_x/CMakeLists.txt
new file mode 100644
index 0000000000..fec2eaeee9
--- /dev/null
+++ b/src/lib/ecore_x/CMakeLists.txt
@@ -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
+)