1
cmake_minimum_required(VERSION 2.6)
2
3
if(CMAKE_SOURCE_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
4
   find_package(KDE4 REQUIRED)
5
   include (KDE4Defaults)
6
   include(MacroOptionalAddSubdirectory)
7
8
   add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
9
   include_directories(${KDE4_INCLUDES})
10
endif(CMAKE_SOURCE_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
11
12
include_directories(
13
  ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
14
15
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
16
17
find_package(X11 REQUIRED)
18
macro_log_feature(X11_Xinput_FOUND "XInput" "XInput protocol support"
19
    "http://www.x.org/" TRUE)
20
include_directories(${X11_X11_INCLUDE_PATH})
21
include_directories(${X11_Xinput_INCLUDE_PATH})
22
23
include(CheckPrototypeExists)
24
25
find_package(PkgConfig)
26
if(PKG_CONFIG_FOUND)
27
  # rely on pkg-config if possible
28
  pkg_search_module(UDEV "libudev")
29
else(PKG_CONFIG_FOUND)
30
  # if pkg-config is not available, check if we can compile against libudev
31
  # in standard include and library directories
32
  check_prototype_exists(udev_new libudev.h UDEV_FOUND)
33
  set(UDEV_LIBRARIES "udev")
34
endif(PKG_CONFIG_FOUND)
35
if(UDEV_FOUND)
36
  include_directories(${UDEV_INCLUDE_DIRS})
37
  link_directories(${UDEV_LIBRARY_DIRS})
38
endif(UDEV_FOUND)
39
40
option(WITH_XINPUT2 "Search for XInput2" OFF)
41
42
# determine availability of XInput device property API
43
check_prototype_exists(XChangeDeviceProperty X11/extensions/XInput.h
44
  HAVE_DEVICE_PROPERTIES)
45
if(WITH_XINPUT2)
46
  check_prototype_exists(XIChangeProperty X11/extensions/XInput2.h
47
    HAVE_DEVICE_PROPERTIES_V2)
48
  # make V2 mandatory
49
  set(HAVE_DEVICE_PROPERTIES "${HAVE_DEVICE_PROPERTIES_V2}")
50
endif(WITH_XINPUT2)
51
52
# device properties
53
macro_log_feature(HAVE_DEVICE_PROPERTIES "Device properties"
54
  "XInput device properties" "http://www.x.org/" TRUE)
55
macro_log_feature(HAVE_DEVICE_PROPERTIES_V2 "Device properties 2"
56
  "XInput device properties 2.x" "http://www.x.org/")
57
macro_bool_to_01(HAVE_DEVICE_PROPERTIES_V2 HAVE_XINPUT2)
58
# udev
59
macro_log_feature(UDEV_FOUND "libudev" "UDev library"
60
  "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
61
  TRUE)
62
63
configure_file(
64
  "${CMAKE_CURRENT_SOURCE_DIR}/config-synaptiks.h.cmake"
65
  "${CMAKE_CURRENT_BINARY_DIR}/config-synaptiks.h")
66
67
# notification configuration
68
install(FILES synaptiks.notifyrc
69
  DESTINATION "${DATA_INSTALL_DIR}/synaptiks")
70
# configuration schema
71
install(FILES synaptiks.kcfg DESTINATION ${KCFG_INSTALL_DIR})
72
73
add_subdirectory(applet)
74
add_subdirectory(daemon)
75
add_subdirectory(kcmodule)
76
add_subdirectory(icons)
77
add_subdirectory(pics)
78
79
if(CMAKE_SOURCE_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
80
    macro_display_feature_log()
81
endif(CMAKE_SOURCE_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")