CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(devman C)

INCLUDE(FindPkgConfig)
pkg_check_modules(rpkgs REQUIRED
		vconf
		dlog
		heynoti)
ADD_DEFINITIONS(${rpkgs_CFLAGS})

SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRAINTS true)

SET(SRCS
	device_plugin.c
	device_engine.c
	device_haptic.c
	if_legacy.c
	if_generic.c
	devman_internal.c)

SET(HEADERS
	devman.h
	devman_haptic.h
	devman_haptic_ext.h
	devman_haptic_ext_core.h
	devman_haptic_plugin_intf.h
	devman_plugin_intf.h
	SLP_devman_PG.h)

INCLUDE(devices/CMakeLists.txt) 

SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(EXEC_PREFIX "\${prefix}")
SET(LIBDIR "\${prefix}/lib")
SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
SET(DATADIR ${CMAKE_DATADIR})
SET(VERSION 0.1)

SET(UDEV_RULES_PATH ${CMAKE_DEVMAN_RSRC_PREFIX}/udev-rules)
SET(UDEV_RULES udev-files/91-devman.rules)
SET(RC_LOCAL_SCRIPT devman)

INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})

SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g")

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")

ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
ADD_DEFINITIONS("-DENABLE_DLOG_OUT -DSLP_DEBUG")

ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} ${TARGET_SRCS})

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${rpkgs_LDFLAGS} "-ldl")
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})

ADD_EXECUTABLE(display_wd display_wd.c)
TARGET_LINK_LIBRARIES(display_wd ${pkgs_LDFLAGS} ${PROJECT_NAME})
INSTALL(TARGETS display_wd DESTINATION bin)

CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
CONFIGURE_FILE(${PROJECT_NAME}_haptic.pc.in ${PROJECT_NAME}_haptic.pc @ONLY)
CONFIGURE_FILE(${PROJECT_NAME}_plugin.pc.in ${PROJECT_NAME}_plugin.pc @ONLY)
CONFIGURE_FILE(${UDEV_RULES}.in ${UDEV_RULES} @ONLY)

INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_haptic.pc DESTINATION lib/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_plugin.pc DESTINATION lib/pkgconfig)

FOREACH(hfile ${HEADERS})
	INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/${PROJECT_NAME})
ENDFOREACH(hfile)

FOREACH(rfile ${UDEV_RULES})
	INSTALL(FILES ${rfile} DESTINATION ${UDEV_RULES_PATH})
ENDFOREACH(rfile)

FOREACH(sfile ${PDP_FILES})
	INSTALL(FILES ${sfile} DESTINATION sbin)
ENDFOREACH(sfile)

INSTALL(FILES ${UDEV_SMDEL} DESTINATION bin)
INSTALL(FILES ${UDEV_USB} DESTINATION sbin)
INSTALL(PROGRAMS ${RC_LOCAL_SCRIPT} DESTINATION /etc/rc.d/init.d)
