CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

PROJECT(BMPANEL)
SET(BMPANEL_VERSION_MAJOR "2")
SET(BMPANEL_VERSION_MINOR "1")
SET(BMPANEL_VERSION "${BMPANEL_VERSION_MAJOR}.${BMPANEL_VERSION_MINOR}")

SET(BMPANEL_EXECUTABLE_NAME "bmpanel${BMPANEL_VERSION_MAJOR}")

# always compile with -Wall
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu99")

SET(SOURCES
	${CMAKE_CURRENT_SOURCE_DIR}/memory.c
	${CMAKE_CURRENT_SOURCE_DIR}/message.c 
	${CMAKE_CURRENT_SOURCE_DIR}/config-parser.c 
	${CMAKE_CURRENT_SOURCE_DIR}/bmpanel.c
	${CMAKE_CURRENT_SOURCE_DIR}/xutil.c
	${CMAKE_CURRENT_SOURCE_DIR}/panel.c
	${CMAKE_CURRENT_SOURCE_DIR}/image-cache.c
	${CMAKE_CURRENT_SOURCE_DIR}/event-dispatchers.c
	${CMAKE_CURRENT_SOURCE_DIR}/xdg.c
	${CMAKE_CURRENT_SOURCE_DIR}/settings.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-interface.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-utils.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-taskbar.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-clock.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-decor.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-desktops.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-systray.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-launchbar.c
	${CMAKE_CURRENT_SOURCE_DIR}/widget-empty.c
	${CMAKE_CURRENT_SOURCE_DIR}/render-normal.c
	${CMAKE_CURRENT_SOURCE_DIR}/render-pseudo.c
	${CMAKE_CURRENT_SOURCE_DIR}/args.c
	${CMAKE_CURRENT_SOURCE_DIR}/strbuf.c
)

# xlib
FIND_PACKAGE(X11 REQUIRED)

# pkg-config packages
FIND_PACKAGE(PkgConfig REQUIRED)
PKG_CHECK_MODULES(CAIRO REQUIRED cairo)
PKG_CHECK_MODULES(PANGO REQUIRED pangocairo)

# i can use FindGTK here probably, but since I need only glib.. 
PKG_CHECK_MODULES(GLIB REQUIRED glib-2.0)
PKG_CHECK_MODULES(GTHREAD REQUIRED gthread-2.0)

INCLUDE_DIRECTORIES(${X11_INCLUDE_DIRS} ${CAIRO_INCLUDE_DIRS}
	${GLIB_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS})
	
ADD_EXECUTABLE(${BMPANEL_EXECUTABLE_NAME} ${SOURCES})
TARGET_LINK_LIBRARIES(${BMPANEL_EXECUTABLE_NAME} ${X11_LIBRARIES}
	${CAIRO_LIBRARIES} ${GLIB_LIBRARIES} ${GTHREAD_LIBRARIES} ${PANGO_LIBRARIES})

# OPTIONS
OPTION(BMPANEL2_FEATURE_MANPAGE "Build man page? (requires asciidoc and docbook-xsl)" ON)
OPTION(BMPANEL2_FEATURE_CONFIG "Install PyGTK based configuration tool? (requires Python and PyGTK)" ON)

# install commands
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${BMPANEL_EXECUTABLE_NAME}
	DESTINATION bin)
INSTALL(DIRECTORY themes
	DESTINATION share/bmpanel2)

IF(BMPANEL2_FEATURE_CONFIG)
	FIND_PACKAGE(PythonInterp)
	IF(PYTHONINTERP_FOUND)
		CONFIGURE_FILE(CMake/InstallBmpanel2Cfg.cmake.in CMake/InstallBmpanel2Cfg.cmake @ONLY)
		INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/CMake/InstallBmpanel2Cfg.cmake)
	ENDIF(PYTHONINTERP_FOUND)
ENDIF(BMPANEL2_FEATURE_CONFIG)

ADD_SUBDIRECTORY(man)
