--- a/CMakeLists.txt Mon May 21 03:38:51 2012 +0300
+++ b/CMakeLists.txt Mon May 21 19:10:25 2012 +0300
@@ -18,8 +18,38 @@
project(pep C)
set(PROJECT_VERSION "0.0.3")
+set(HANDLER_LIST mood tune geoloc activity)
+set(MODULE_LIST pep)
+foreach(HANDLER IN LISTS HANDLER_LIST)
+ list(APPEND MODULE_LIST ${HANDLER} pep_${HANDLER})
+endforeach(HANDLER)
+
## User settable options
-
+option(DEBUG "Enable debugging symbols" OFF)
+foreach(HANDLER IN LISTS HANDLER_LIST)
+ string(TOUPPER ${HANDLER} UPHANDLER)
+ set(HOOK_${UPHANDLER}_IN "${HANDLER}-in" CACHE TEXT "${HANDLER} incoming event hook name")
+ set(HOOK_${UPHANDLER}_OUT "${HANDLER}-out" CACHE TEXT "${HANDLER} outgoing event hook name")
+endforeach(HANDLER)
+set(OPT_TUNE_PAUSE_IS_STOP "pep_tune_pause_is_stop" CACHE TEXT "Tune pause is stop option name")
+set(OPT_TUNE_INTERVAL "pep_tune_interval" CACHE TEXT "Tune intevral option name")
+set(OPT_GEOLOC_INTERVAL "pep_geoloc_interval" CACHE TEXT "Geoloc interval option name")
+
+set(PEP_DESCRIPTION "Common listener for PEP events")
+set(PEP_MOOD_DESCRIPTION "PEP mood event handler")
+set(PEP_TUNE_DESCRIPTION "PEP tune event handler\\n Options: ${OPT_TUNE_INTERVAL}, ${OPT_TUNE_PAUSE_IS_STOP}")
+set(PEP_GEOLOC_DESCRIPTION "PEP geoloc event handler\\n Options: ${OPT_GEOLOC_INTERVAL}")
+set(PEP_ACTIVITY_DESCRIPTION "PEP activity event handler")
+set(MOOD_DESCRIPTION "Mood event handler (ui)\\n Command: /mood")
+set(TUNE_DESCRIPTION "Tune event handler (ui)\\n Command: /tune")
+set(GEOLOC_DESCRIPTION "Geolocation event handler (ui)\\n Command: /geoloc")
+set(ACTIVITY_DESCRIPTION "User activity event handler (ui)\\n Command: /activity")
+
+foreach(AVMODULE IN LISTS MODULE_LIST)
+ string(TOUPPER ${AVMODULE} AVMODULE)
+ execute_PROCESS(COMMAND echo -n "${${AVMODULE}_DESCRIPTION}" COMMAND sed -e "s/\\\\n/\\n\\t/g" OUTPUT_VARIABLE ${AVMODULE}_DESCRIPTION_AVV)
+endforeach(AVMODULE)
+
## Check for build dependencies
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB REQUIRED glib-2.0)
@@ -35,44 +65,30 @@
${MCABBER_LIBRARY_DIRS})
## Target definitions
-add_library(pep MODULE pep.c pep.h)
-add_library(mood MODULE mood.c mood.h)
-add_library(pep_mood MODULE pep_mood.c mood.h pep.h)
-add_library(tune MODULE tune.c tune.h)
-add_library(pep_tune MODULE pep_tune.c tune.h pep.h)
-add_library(geoloc MODULE geoloc.c geoloc.h)
-add_library(pep_geoloc MODULE pep_geoloc.c geoloc.h pep.h)
-add_library(activity MODULE activity.c activity.h)
-add_library(pep_activity MODULE pep_activity.c activity.h pep.h)
+add_library(pep MODULE pep.c pep.h)
+foreach(HANDLER IN LISTS HANDLER_LIST)
+ add_library(${HANDLER} MODULE ${HANDLER}.c pep_${HANDLER}.h)
+ add_library(pep_${HANDLER} MODULE pep_${HANDLER}.c pep_${HANDLER}.h pep.h)
+endforeach(HANDLER)
## Compiler setup
if(DEBUG)
set(DEBUG_COMPILE_FLAGS "-g")
endif()
-configure_file(config.h.in config.h)
-include_directories(SYSTEM ${GLIB_INCLUDE_DIRS}
- ${LM_INCLUDE_DIRS}
- ${MCABBER_INCLUDE_DIRS})
-target_link_libraries(pep ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(mood ${GLIB_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(pep_mood ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(tune ${GLIB_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(pep_tune ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(geoloc ${GLIB_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(pep_geoloc ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(activity ${GLIB_LIBRARIES} ${MCABBER_LIBRARIES})
-target_link_libraries(pep_activity ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
-include_directories(${pep_SOURCE_DIR}
- ${pep_BINARY_DIR})
-set_target_properties(pep PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(mood PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(pep_mood PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(tune PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(pep_tune PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(geoloc PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(pep_geoloc PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(activity PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
-set_target_properties(pep_activity PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
+configure_file(config.h.in config.h)
+foreach(HANDLER IN LISTS HANDLER_LIST)
+ configure_file(pep_${HANDLER}.h.in pep_${HANDLER}.h)
+endforeach(HANDLER)
+include_directories(SYSTEM ${GLIB_INCLUDE_DIRS} ${LM_INCLUDE_DIRS} ${MCABBER_INCLUDE_DIRS})
+target_link_libraries(pep ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
+foreach(HANDLER IN LISTS HANDLER_LIST)
+ target_link_libraries(${HANDLER} ${GLIB_LIBRARIES} ${MCABBER_LIBRARIES})
+ target_link_libraries(pep_${HANDLER} ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
+endforeach(HANDLER)
+include_directories(${pep_SOURCE_DIR} ${pep_BINARY_DIR})
+foreach(AVMODULE IN LISTS MODULE_LIST)
+ set_target_properties(${AVMODULE} PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
+endforeach(AVMODULE)
## Packaging information
set(CPACK_PACKAGE_NAME libmcabber-pep)
@@ -94,22 +110,22 @@
set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so")
include(CPack)
-configure_file(avv/pep.in avv/pep)
-configure_file(avv/mood.in avv/mood)
-configure_file(avv/pep_mood.in avv/pep_mood)
-configure_file(avv/tune.in avv/tune)
-configure_file(avv/pep_tune.in avv/pep_tune)
-configure_file(avv/geoloc.in avv/geoloc)
-configure_file(avv/pep_geoloc.in avv/pep_geoloc)
-configure_file(avv/activity.in avv/activity)
-configure_file(avv/pep_activity.in avv/pep_activity)
+foreach(AVMODULE IN LISTS MODULE_LIST)
+ configure_file(avv/${AVMODULE}.in avv/${AVMODULE})
+endforeach(AVMODULE)
+
+configure_file(pep.rc.in pep.rc @ONLY)
## Installation
-install(TARGETS pep mood pep_mood tune pep_tune geoloc pep_geoloc activity pep_activity DESTINATION lib/mcabber)
-install(FILES pep.rc COPYING TODO README DESTINATION share/doc/${CPACK_PACKAGE_NAME})
-install(DIRECTORY doc/ DESTINATION share/doc/${CPACK_PACKAGE_NAME})
-install(FILES pep.h mood.h tune.h geoloc.h activity.h DESTINATION include/mcabber)
-install(DIRECTORY help DESTINATION share/mcabber)
-install(DIRECTORY ${PROJECT_BINARY_DIR}/avv/ DESTINATION share/mcabber/avv/modules)
+install(TARGETS ${MODULE_LIST} DESTINATION lib/mcabber)
+install(FILES ${PROJECT_BINARY_DIR}/pep.rc COPYING TODO README DESTINATION share/doc/${CPACK_PACKAGE_NAME})
+install(DIRECTORY doc/ DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE)
+install(FILES pep.h
+ ${PROJECT_BINARY_DIR}/pep_mood.h
+ ${PROJECT_BINARY_DIR}/pep_tune.h
+ ${PROJECT_BINARY_DIR}/pep_geoloc.h
+ ${PROJECT_BINARY_DIR}/pep_activity.h DESTINATION include/mcabber)
+install(DIRECTORY help DESTINATION share/mcabber PATTERN "*~" EXCLUDE)
+install(DIRECTORY ${PROJECT_BINARY_DIR}/avv/ DESTINATION share/mcabber/avv/modules PATTERN "*~" EXCLUDE)
## The End ## vim: se ts=4: ##