]> Dogcows Code - chaz/tint2/blobdiff - CMakeLists.txt
add missing battery config CPP guard
[chaz/tint2] / CMakeLists.txt
index 4e5aa323e148471af039f8d06d8fac2a4b559839..dda1f1a13ec092611b2d449d77b99e30bd4250f9 100644 (file)
@@ -1,20 +1,38 @@
-project(tint2)
-cmake_minimum_required(VERSION 2.6)
+project( tint2 )
+cmake_minimum_required( VERSION 2.6 )
 
 include( FindPkgConfig )
-pkg_check_modules( X11 REQUIRED x11 xcomposite xdamage xinerama xrender xrandr )
+include( CheckLibraryExists )
+pkg_check_modules( X11 REQUIRED x11 xcomposite xdamage xinerama xrender xrandr>=1.3 )
 pkg_check_modules( PANGOCAIRO REQUIRED pangocairo )
 pkg_check_modules( PANGO REQUIRED pango )
 pkg_check_modules( CAIRO REQUIRED cairo )
 pkg_check_modules( GLIB2 REQUIRED glib-2.0 )
 pkg_check_modules( GOBJECT2 REQUIRED gobject-2.0 )
-pkg_check_modules( IMLIB2 REQUIRED imlib2 )
+pkg_check_modules( IMLIB2 REQUIRED imlib2>=1.4.2 )
+pkg_check_modules( SN libstartup-notification-1.0>=0.12 )
+find_library( RT_LIBRARY rt )
 
-include_directories( src
+if( NOT X11_FOUND OR NOT PANGOCAIRO_FOUND OR NOT PANGO_FOUND OR NOT CAIRO_FOUND OR NOT GLIB2_FOUND OR NOT GOBJECT2_FOUND OR NOT IMLIB2_FOUND )
+  message( FATAL_ERROR "Not all dependencies fulfilled. See http://code.google.com/p/tint2/wiki/Install" )
+endif( NOT X11_FOUND OR NOT PANGOCAIRO_FOUND OR NOT PANGO_FOUND OR NOT CAIRO_FOUND OR NOT GLIB2_FOUND OR NOT GOBJECT2_FOUND OR NOT IMLIB2_FOUND )
+
+string( REPLACE ";" " " FLAGS_REPLACED "${IMLIB2_LDFLAGS}" )
+set( CMAKE_REQUIRED_FLAGS "${FLAGS_REPLACED}" )
+check_library_exists( "${IMLIB2_LIBRARIES}" "imlib_context_set_display" "${IMLIB2_LIBRARY_DIRS}" IMLIB_BUILD_WITH_X )
+if( NOT IMLIB_BUILD_WITH_X )
+  message( FATAL_ERROR "Imlib is not build with x support" )
+endif( NOT IMLIB_BUILD_WITH_X )
+
+include_directories( ${PROJECT_BINARY_DIR}
+                     src
+                     src/battery
                      src/clock
                      src/systray
                      src/taskbar
+                     src/launcher
                      src/tooltip
+                                        src/freespace
                      src/util
                      ${X11_INCLUDE_DIRS}
                      ${PANGOCAIRO_INCLUDE_DIRS}
@@ -22,29 +40,64 @@ include_directories( src
                      ${CAIRO_INCLUDE_DIRS}
                      ${GLIB2_INCLUDE_DIRS}
                      ${GOBJECT2_INCLUDE_DIRS}
-                     ${IMLIB2_INCLUDE_DIRS} )
-message("Cairo cflags: ${CAIRO_INCLUDE_DIRS}" )
-
-set(SOURCES src/config.c
-            src/panel.c
-            src/server.c
-            src/tint.c
-            src/clock/clock.c
-            src/systray/systraybar.c
-            src/taskbar/task.c
-            src/taskbar/taskbar.c
-            src/tooltip/tooltip.c
-            src/util/area.c
-            src/util/common.c
-            src/util/timer.c
-            src/util/window.c )
-
-option( ENABLE_BATTERY "Enable battery support in tint2" OFF )
-if ( ENABLE_BATTERY )
+                     ${IMLIB2_INCLUDE_DIRS}
+                    ${SN_INCLUDE_DIRS} )
+
+set( SOURCES src/config.c
+             src/panel.c
+             src/server.c
+             src/tint.c
+             src/clock/clock.c
+             src/systray/systraybar.c
+             src/launcher/launcher.c
+             src/launcher/xsettings-client.c
+             src/launcher/xsettings-common.c
+             src/taskbar/task.c
+             src/taskbar/taskbar.c
+             src/taskbar/taskbarname.c
+             src/tooltip/tooltip.c
+             src/freespace/freespace.c
+             src/util/area.c
+             src/util/common.c
+             src/util/timer.c
+             src/util/window.c )
+
+option( ENABLE_BATTERY "Enable battery status plugin" ON )
+option( ENABLE_TINT2CONF "Enable tint2conf build, a GTK+2 theme switcher for tint2" ON )
+option( ENABLE_EXAMPLES "Install additional tin2rc examples" OFF )
+option( ENABLE_SN "Startup notification support" ON )
+if( ENABLE_SN )
+  if( SN_FOUND )
+    add_definitions( -DHAVE_SN -DSN_API_NOT_YET_FROZEN )
+  endif( SN_FOUND )
+endif( ENABLE_SN)
+
+if( ENABLE_BATTERY )
   set( SOURCES ${SOURCES} src/battery/battery.c )
+  add_definitions( -DENABLE_BATTERY )
 endif( ENABLE_BATTERY )
 
+set( MANDIR share/man CACHE PATH "Directory for man pages" )
+set( DATADIR share CACHE PATH "Directory for shared data" )
+set( SYSCONFDIR /etc CACHE PATH "Directory for configuration files" )
+set( DOCDIR share/doc/tint2 CACHE PATH "Directory for documentation files" )
+
+if( ENABLE_TINT2CONF )
+  add_definitions( -DHAVE_VERSION_H )
+  add_subdirectory( src/tint2conf )
+  add_dependencies( tint2conf version )
+endif( ENABLE_TINT2CONF )
 
+add_custom_target( version ALL "${PROJECT_SOURCE_DIR}/get_svnrev.sh" "\"${PROJECT_SOURCE_DIR}\"" )
+
+link_directories( ${X11_LIBRARY_DIRS}
+                  ${PANGOCAIRO_LIBRARY_DIRS}
+                  ${PANGO_LIBRARY_DIRS}
+                  ${CAIRO_LIBRARY_DIRS}
+                  ${GLIB2_LIBRARY_DIRS}
+                  ${GOBJECT2_LIBRARY_DIRS}
+                  ${IMLIB2_LIBRARY_DIRS}
+                 ${SN_LIBRARY_DIRS} )
 add_executable(tint2 ${SOURCES})
 target_link_libraries( tint2 ${X11_LIBRARIES}
                              ${PANGOCAIRO_LIBRARIES}
@@ -53,6 +106,21 @@ target_link_libraries( tint2 ${X11_LIBRARIES}
                              ${GLIB2_LIBRARIES}
                              ${GOBJECT2_LIBRARIES}
                              ${IMLIB2_LIBRARIES}
-                             rt )
+                            ${SN_LIBRARIES} )
+if( RT_LIBRARY )
+  target_link_libraries( tint2 ${RT_LIBRARY} )
+endif( RT_LIBRARY )
+
+add_dependencies( tint2 version )
+set_target_properties( tint2 PROPERTIES COMPILE_FLAGS "-Wall -pthread" )
+set_target_properties(tint2 PROPERTIES LINK_FLAGS "-pthread" )
 
-install(TARGETS tint2 DESTINATION bin)
+install( TARGETS tint2 DESTINATION bin )
+install( FILES sample/tint2rc DESTINATION ${SYSCONFDIR}/xdg/tint2 )
+install( FILES default_icon.png DESTINATION ${DATADIR}/tint2 )
+install( FILES AUTHORS ChangeLog README DESTINATION ${DOCDIR} )
+install( FILES doc/tint2.1 DESTINATION ${MANDIR}/man1 )
+if( ENABLE_EXAMPLES )
+  file( GLOB SAMPLEFILES sample/*.tint2rc )
+  install( FILES ${SAMPLEFILES} DESTINATION ${DOCDIR}/examples )
+endif( ENABLE_EXAMPLES )
This page took 0.022304 seconds and 4 git commands to generate.