Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / workspace / kcontrol / kxkb / CMakeLists.txt
blob99d1235d3e77638d7de43a8d310a22e3fe5f5e7c
1 add_subdirectory( pics )
2 #add_subdirectory( tests ) 
3 KDE4_NO_ENABLE_FINAL(kxkb)
5 OPTION(USE_XKLAVIER "Use libxklavier to get keyboard layouts configuration" ON)
7 MESSAGE(STATUS "option: USE_XKLAVIER  <${USE_XKLAVIER}>")
9 if( USE_XKLAVIER STREQUAL ON )
11   macro_optional_find_package(LibXKlavier)
12   macro_optional_find_package(GLIB2)
13   macro_optional_find_package(GObject)
15   if(LIBXKLAVIER_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND)
16     SET(HAVE_XKLAVIER TRUE)
18     SET(CMAKE_REQUIRED_DEFINITIONS ${LIBXKLAVIER_DEFINITIONS})
19     SET(CMAKE_REQUIRED_LIBRARIES ${LIBXKLAVIER_LIBRARIES})
21     SET(XKB_SUPPORT_SRC xklavier_adaptor.cpp)
22     SET(XKB_SUPPORT_LIB ${LIBXKLAVIER_LIBRARIES} ${GOBJECT_LIBRARIES})
23     ADD_DEFINITIONS(-DHAVE_XKLAVIER=1 ${LIBXKLAVIER_DEFINITIONS} ${_LibGLIB2Cflags})
24     include_directories(${GLIB2_INCLUDE_DIR})
26   else(LIBXKLAVIER_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND)
27     MESSAGE (STATUS "kxkb: Could not find libxklavier >= 3.0, glib or gobject, will try xkbfile...")
28   endif(LIBXKLAVIER_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND)
30 endif( USE_XKLAVIER STREQUAL ON )
32 if( NOT HAVE_XKLAVIER )
34     if (NOT X11_Xkbfile_FOUND)
35         MESSAGE (STATUS "Could not find xkbfile - kxkb won't be built!")
36         macro_log_feature (FALSE "libxklavier" "Could not find libxklavier or xkbfile - kxkb won't be built!" "http://freedesktop.org/wiki/Software/LibXklavier")
37     else (NOT X11_Xkbfile_FOUND)
38         SET(XKB_SUPPORT_LIB ${X11_Xkbfile_LIB})
39         MESSAGE (STATUS "Using xkbfile for getting keyboard layouts is not well maintained, please consider installing libxklavier.")
40         macro_log_feature (TRUE "libxklavier" "Using xkbfile for getting keyboard layouts is not well maintained, please consider installing libxklavier." "http://freedesktop.org/wiki/Software/LibXklavier")
41     endif (NOT X11_Xkbfile_FOUND)
43 endif( NOT HAVE_XKLAVIER )
46 if (X11_Xkbfile_FOUND OR HAVE_XKLAVIER)
48 #MESSAGE("xkb support libs:: ${XKB_SUPPORT_LIB}")
52 ########### common sources ############
54 set(kxkb_COMMON_SRCS 
55   rules.cpp
56   kxkbconfig.cpp
57   extension.cpp
58   x11helper.cpp
59   pixmap.cpp
60   ${XKB_SUPPORT_SRC}
64 ########### KCM ###############
66 set(kcm_keyboard_layout_PART_SRCS 
67   kcmlayout.cpp
68   ${kxkb_COMMON_SRCS}
71 kde4_add_ui_files(kcm_keyboard_layout_PART_SRCS kcmlayoutwidget.ui )
73 kde4_add_plugin(kcm_keyboard_layout ${kcm_keyboard_layout_PART_SRCS})
75 target_link_libraries(kcm_keyboard_layout ${KDE4_KIO_LIBS}
76     ${XKB_SUPPORT_LIB}
79 if(X11_XTest_FOUND)
80   target_link_libraries(kcm_keyboard_layout ${X11_XTest_LIB})
81 endif(X11_XTest_FOUND)
83 install(TARGETS kcm_keyboard_layout DESTINATION ${PLUGIN_INSTALL_DIR} )
84 install( FILES keyboard_layout.desktop DESTINATION  ${SERVICES_INSTALL_DIR} )
87 ########### KXKB kdeinit ###############
89 set(kxkb_KDEINIT_SRCS ${kxkb_COMMON_SRCS}
90   kxkbcore.cpp
91   layoutmap.cpp
92   kxkbapp.cpp
93   kxkbwidget.cpp
94   kxkb_adaptor.cpp
95   kxkb_part.cpp
98 kde4_add_kdeinit_executable( kxkb ${kxkb_KDEINIT_SRCS})
100 target_link_libraries(kdeinit_kxkb ${X11_X11_LIB} ${X11_Xext_LIB} ${KDE4_KDEUI_LIBS}
101      ${XKB_SUPPORT_LIB})
103 install(TARGETS kdeinit_kxkb  DESTINATION ${LIB_INSTALL_DIR} )
105 target_link_libraries( kxkb kdeinit_kxkb )
106 install(TARGETS kxkb DESTINATION ${BIN_INSTALL_DIR})
107 #install(FILES kxkb_component.h DESTINATION ${INCLUDE_INSTALL_DIR})
110 ########### KXKB Plasma Applet ###############
112 if( FALSE )     # don't generate applet - it's not finished yet
114 set(plasma_applet_kxkb_SRCS kxkb_applet.cpp ${kxkb_COMMON_SRCS}
115      kxkbcore.cpp
116      layoutmap.cpp
117      kxkbwidget.cpp
120 kde4_add_plugin(plasma_applet_kxkb ${plasma_applet_kxkb_SRCS})
122 target_link_libraries(plasma_applet_kxkb plasma
123     ${KDE4_KDEUI_LIBS} ${XKB_SUPPORT_LIB})
124         
125 if(X11_XTest_FOUND)
126     target_link_libraries(plasma_applet_kxkb ${X11_XTest_LIB})
127 endif(X11_XTest_FOUND)
129 install(TARGETS plasma_applet_kxkb  DESTINATION ${PLUGIN_INSTALL_DIR} )
130 install(FILES plasma-applet-kxkb.desktop  DESTINATION  ${SERVICES_INSTALL_DIR})
132 ADD_DEPENDENCIES(plasma_applet_kxkb kdeinit_kxkb)
134 endif (FALSE)
136 ########### KXKB KPart ###############
137 # we're not using KPart for now - it's too heavy
139 #set(kxkb_part_PART_SRCS kxkb_part.cpp)
141 #kde4_add_plugin(kxkb_part ${kxkb_part_PART_SRCS})
143 #target_link_libraries(kxkb_part kdeinit_kxkb
144 #    ${KDE4_KIO_LIBS}
145 #    ${XKB_SUPPORT_LIB}
147 #if(X11_XTest_FOUND)
148 #  target_link_libraries(kxkb_part ${X11_XTest_LIB})
149 #endif(X11_XTest_FOUND)
151 #install( TARGETS kxkb_part DESTINATION ${PLUGIN_INSTALL_DIR} )
152 #install( FILES kxkb_part.desktop DESTINATION  ${SERVICES_INSTALL_DIR} )
153 ##install( FILES kxkb_part.rc DESTINATION  ${DATA_INSTALL_DIR}/kxkb_part )
155 endif (X11_Xkbfile_FOUND OR HAVE_XKLAVIER)