CMAKE_MINIMUM_REQUIRED (VERSION 2.4 FATAL_ERROR)
IF (COMMAND CMAKE_POLICY)	
	CMAKE_POLICY(SET CMP0005 OLD)
ENDIF (COMMAND CMAKE_POLICY)	
PROJECT (pawm)
SET (AUTHOR "David Gómez Espinosa" INTERNAL "Author")
SET (VERSION "2.3.0")


INCLUDE (FindPkgConfig)

IF (NOT PKG_CONFIG_FOUND)
	MESSAGE (FATAL_ERROR "pkg-config not found...")
ENDIF (NOT PKG_CONFIG_FOUND)

pkg_check_modules (XORG REQUIRED x11)
IF (NOT XORG_FOUND)
	MESSAGE(FATAL_ERROR "Please install Xlib development libraries to compile pawm...")
ENDIF (NOT XORG_FOUND)

pkg_check_modules (XPM REQUIRED xpm)
IF (NOT XPM_FOUND)
	MESSAGE(FATAL_ERROR "Please install Xpm development libraries to compile pawm")
ENDIF (NOT XPM_FOUND)

pkg_check_modules (XFT REQUIRED xft)
IF (NOT XFT_FOUND)
	MESSAGE(FATAL_ERROR "Please install Xft development libraries to compile pawm")
ENDIF (NOT XFT_FOUND)

pkg_check_modules (FT2 REQUIRED freetype2)
IF (NOT FT2_FOUND)
	MESSAGE(FATAL_ERROR "Please install Freetype development libraries to compile pawm")
ENDIF (NOT FT2_FOUND)

pkg_check_modules (XRANDR REQUIRED xrandr)
IF (NOT XRANDR_FOUND)
	MESSAGE(FATAL_ERROR "Please install Xrandr development libraries to compile pawm")
ENDIF (NOT XRANDR_FOUND)

FIND_PACKAGE(Freetype REQUIRED)

# FIXME: Check if CMAKE_CONFIG_PREFIX is being set ok
SET(CMAKE_CONFIG_PREFIX "/etc")

ADD_DEFINITIONS (-DPROJECT=\\\"${PROJECT}\\\")
ADD_DEFINITIONS (-DVERSION=\\\"${VERSION}\\\")
ADD_DEFINITIONS (-DCONFDIR=\\\"${CMAKE_CONFIG_PREFIX}\\\")
ADD_DEFINITIONS (-DDATADIR=\\\"${CMAKE_INSTALL_PREFIX}/share\\\")
ADD_DEFINITIONS (-DBUILDTYPE=\\\"${CMAKE_BUILD_TYPE}\\\")


IF (${CMAKE_BUILD_TYPE} MATCHES "Debug")
	SET (CMAKE_C_FLAGS "-Wall -Wno-format-zero-length")
ELSE (${CMAKE_BUILD_TYPE} NOT MATCHES "Debug")
	SET (CMAKE_C_FLAGS "-O2")
ENDIF (${CMAKE_BUILD_TYPE} MATCHES "Debug")

INCLUDE_DIRECTORIES(. ${FREETYPE_INCLUDE_DIRS} ${X11_INCLUDE_DIRS})
LINK_DIRECTORIES (. ${X11_LIBRARY_DIRS})
LINK_LIBRARIES (-lm ${X11_LIBRARIES} ${XFT_LIBRARIES} ${XPM_LIBRARIES} ${XRANDR_LIBRARIES})
ADD_CUSTOM_TARGET(signals.c DEPENDS src/signals.h src/signals.c)
ADD_CUSTOM_TARGET(chain.c DEPENDS src/chain.c src/chain.h)
ADD_CUSTOM_TARGET(cfgpool.c DEPENDS src/cfgpool.c src/cfgpool.h)
ADD_CUSTOM_TARGET(x.c DEPENDS src/x.c src/x.h)
ADD_CUSTOM_TARGET(wm.c DEPENDS src/wm.c src/wm.h)
ADD_CUSTOM_TARGET(keyboard.c DEPENDS src/keyboard.c src/keyboard.h)	
ADD_CUSTOM_TARGET(button.c DEPENDS src/button.c src/button.h)
ADD_CUSTOM_TARGET(palabel.c DEPENDS src/palabel.c src/palabel.h)
ADD_CUSTOM_TARGET(paicon.c DEPENDS src/paicon.c src/paicon.h)
ADD_CUSTOM_TARGET(pafont.c DEPENDS src/pafont.c src/pafont.h)
ADD_CUSTOM_TARGET(pashut.c DEPENDS src/pashut.c src/pashut.h)
ADD_CUSTOM_TARGET(pabar.c DEPENDS src/pabar.c src/pabar.h)
ADD_CUSTOM_TARGET(pimp.c DEPENDS src/pimp.c src/pimp.h)
ADD_CUSTOM_TARGET(pawindow.c DEPENDS src/pawindow.c src/pawindow.h)
ADD_CUSTOM_TARGET(pawm.c DEPENDS src/pawm.c)	

ADD_EXECUTABLE(pawm src/signals.c src/chain.c src/cfgpool.c src/x.c src/wm.c src/keyboard.c src/button.c src/palabel.c src/paicon.c src/pafont.c src/pashut.c src/pabar.c src/pimp.c src/pawindow.c src/pawm.c)

INSTALL (TARGETS pawm RUNTIME DESTINATION bin)	
INSTALL (FILES conf/pawm.conf DESTINATION /etc)
INSTALL (DIRECTORY data/icons DESTINATION share/pawm)

SET (EXECUTABLE_OUTPUT_PATH src)

ADD_CUSTOM_TARGET (distclean
	rm -f Makefile cmake_install.cmake CMakeCache.txt install_manifest.txt
	COMMAND rm -rf CMakeFiles )
