CMakeLists.txt
changeset 31 e404cd1c7077
parent 29 23fa36d480fb
child 32 9a6164bc805c
equal deleted inserted replaced
30:a66ed0454ca8 31:e404cd1c7077
    16 
    16 
    17 cmake_minimum_required(VERSION 2.6) 
    17 cmake_minimum_required(VERSION 2.6) 
    18 project(pep C) 
    18 project(pep C) 
    19 set(PROJECT_VERSION "0.0.3")
    19 set(PROJECT_VERSION "0.0.3")
    20 
    20 
       
    21 set(HANDLER_LIST mood tune geoloc activity)
       
    22 set(MODULE_LIST pep)
       
    23 foreach(HANDLER IN LISTS HANDLER_LIST)
       
    24 	list(APPEND MODULE_LIST ${HANDLER} pep_${HANDLER})
       
    25 endforeach(HANDLER)
       
    26 
    21 ## User settable options
    27 ## User settable options
    22  
    28 option(DEBUG "Enable debugging symbols" OFF)
       
    29 foreach(HANDLER IN LISTS HANDLER_LIST)
       
    30 	string(TOUPPER ${HANDLER} UPHANDLER)
       
    31 	set(HOOK_${UPHANDLER}_IN "${HANDLER}-in"   CACHE TEXT "${HANDLER} incoming event hook name")
       
    32 	set(HOOK_${UPHANDLER}_OUT "${HANDLER}-out" CACHE TEXT "${HANDLER} outgoing event hook name")
       
    33 endforeach(HANDLER)
       
    34 set(OPT_TUNE_PAUSE_IS_STOP "pep_tune_pause_is_stop" CACHE TEXT "Tune pause is stop option name")
       
    35 set(OPT_TUNE_INTERVAL      "pep_tune_interval"      CACHE TEXT "Tune intevral option name")
       
    36 set(OPT_GEOLOC_INTERVAL    "pep_geoloc_interval"    CACHE TEXT "Geoloc interval option name")
       
    37 
       
    38 set(PEP_DESCRIPTION          "Common listener for PEP events")
       
    39 set(PEP_MOOD_DESCRIPTION     "PEP mood event handler")
       
    40 set(PEP_TUNE_DESCRIPTION     "PEP tune event handler\\n Options: ${OPT_TUNE_INTERVAL}, ${OPT_TUNE_PAUSE_IS_STOP}")
       
    41 set(PEP_GEOLOC_DESCRIPTION   "PEP geoloc event handler\\n Options: ${OPT_GEOLOC_INTERVAL}")
       
    42 set(PEP_ACTIVITY_DESCRIPTION "PEP activity event handler")
       
    43 set(MOOD_DESCRIPTION         "Mood event handler (ui)\\n Command: /mood")
       
    44 set(TUNE_DESCRIPTION         "Tune event handler (ui)\\n Command: /tune")
       
    45 set(GEOLOC_DESCRIPTION       "Geolocation event handler (ui)\\n Command: /geoloc")
       
    46 set(ACTIVITY_DESCRIPTION     "User activity event handler (ui)\\n Command: /activity")
       
    47 
       
    48 foreach(AVMODULE IN LISTS MODULE_LIST)
       
    49 	string(TOUPPER ${AVMODULE} AVMODULE)
       
    50 	execute_PROCESS(COMMAND echo -n "${${AVMODULE}_DESCRIPTION}" COMMAND sed -e "s/\\\\n/\\n\\t/g" OUTPUT_VARIABLE ${AVMODULE}_DESCRIPTION_AVV)
       
    51 endforeach(AVMODULE)
       
    52 
    23 ## Check for build dependencies
    53 ## Check for build dependencies
    24 find_package(PkgConfig REQUIRED) 
    54 find_package(PkgConfig REQUIRED) 
    25 pkg_check_modules(GLIB REQUIRED glib-2.0) 
    55 pkg_check_modules(GLIB REQUIRED glib-2.0) 
    26 pkg_check_modules(LM REQUIRED loudmouth-1.0) 
    56 pkg_check_modules(LM REQUIRED loudmouth-1.0) 
    27 pkg_check_modules(MCABBER REQUIRED mcabber)
    57 pkg_check_modules(MCABBER REQUIRED mcabber)
    33 link_directories(${GLIB_LIBRARY_DIRS}
    63 link_directories(${GLIB_LIBRARY_DIRS}
    34 				 ${LM_LIBRARY_DIRS}
    64 				 ${LM_LIBRARY_DIRS}
    35 				 ${MCABBER_LIBRARY_DIRS})
    65 				 ${MCABBER_LIBRARY_DIRS})
    36 
    66 
    37 ## Target definitions
    67 ## Target definitions
    38 add_library(pep          MODULE pep.c pep.h) 
    68 add_library(pep MODULE pep.c pep.h) 
    39 add_library(mood         MODULE mood.c mood.h) 
    69 foreach(HANDLER IN LISTS HANDLER_LIST)
    40 add_library(pep_mood     MODULE pep_mood.c mood.h pep.h) 
    70 	add_library(${HANDLER}     MODULE ${HANDLER}.c pep_${HANDLER}.h)
    41 add_library(tune         MODULE tune.c tune.h) 
    71 	add_library(pep_${HANDLER} MODULE pep_${HANDLER}.c pep_${HANDLER}.h pep.h)
    42 add_library(pep_tune     MODULE pep_tune.c tune.h pep.h) 
    72 endforeach(HANDLER)
    43 add_library(geoloc       MODULE geoloc.c geoloc.h) 
       
    44 add_library(pep_geoloc   MODULE pep_geoloc.c geoloc.h pep.h) 
       
    45 add_library(activity     MODULE activity.c activity.h) 
       
    46 add_library(pep_activity MODULE pep_activity.c activity.h pep.h) 
       
    47 
    73 
    48 ## Compiler setup
    74 ## Compiler setup
    49 if(DEBUG)
    75 if(DEBUG)
    50 		set(DEBUG_COMPILE_FLAGS "-g")
    76 		set(DEBUG_COMPILE_FLAGS "-g")
    51 endif()
    77 endif()
    52 configure_file(config.h.in config.h)
    78 configure_file(config.h.in       config.h)
    53 include_directories(SYSTEM ${GLIB_INCLUDE_DIRS} 
    79 foreach(HANDLER IN LISTS HANDLER_LIST)
    54                     ${LM_INCLUDE_DIRS}
    80 	configure_file(pep_${HANDLER}.h.in pep_${HANDLER}.h)
    55 					${MCABBER_INCLUDE_DIRS})
    81 endforeach(HANDLER)
    56 target_link_libraries(pep          ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    82 include_directories(SYSTEM ${GLIB_INCLUDE_DIRS} ${LM_INCLUDE_DIRS} ${MCABBER_INCLUDE_DIRS})
    57 target_link_libraries(mood         ${GLIB_LIBRARIES}                 ${MCABBER_LIBRARIES})
    83 target_link_libraries(pep ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    58 target_link_libraries(pep_mood     ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    84 foreach(HANDLER IN LISTS HANDLER_LIST)
    59 target_link_libraries(tune         ${GLIB_LIBRARIES}                 ${MCABBER_LIBRARIES})
    85 	target_link_libraries(${HANDLER}     ${GLIB_LIBRARIES}                 ${MCABBER_LIBRARIES})
    60 target_link_libraries(pep_tune     ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    86 	target_link_libraries(pep_${HANDLER} ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    61 target_link_libraries(geoloc       ${GLIB_LIBRARIES}                 ${MCABBER_LIBRARIES})
    87 endforeach(HANDLER)
    62 target_link_libraries(pep_geoloc   ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    88 include_directories(${pep_SOURCE_DIR} ${pep_BINARY_DIR})
    63 target_link_libraries(activity     ${GLIB_LIBRARIES}                 ${MCABBER_LIBRARIES})
    89 foreach(AVMODULE IN LISTS MODULE_LIST)
    64 target_link_libraries(pep_activity ${GLIB_LIBRARIES} ${LM_LIBRARIES} ${MCABBER_LIBRARIES})
    90 	set_target_properties(${AVMODULE} PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
    65 include_directories(${pep_SOURCE_DIR} 
    91 endforeach(AVMODULE)
    66                     ${pep_BINARY_DIR})
       
    67 set_target_properties(pep          PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    68 set_target_properties(mood         PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    69 set_target_properties(pep_mood     PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    70 set_target_properties(tune         PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    71 set_target_properties(pep_tune     PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    72 set_target_properties(geoloc       PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    73 set_target_properties(pep_geoloc   PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    74 set_target_properties(activity     PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    75 set_target_properties(pep_activity PROPERTIES COMPILE_FLAGS "-Wall ${DEBUG_COMPILE_FLAGS}")
       
    76 
    92 
    77 ## Packaging information
    93 ## Packaging information
    78 set(CPACK_PACKAGE_NAME libmcabber-pep)
    94 set(CPACK_PACKAGE_NAME libmcabber-pep)
    79 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
    95 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
    80 set(CPACK_PACKAGE_VENDOR "IsBear")
    96 set(CPACK_PACKAGE_VENDOR "IsBear")
    92 endif()
   108 endif()
    93 set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
   109 set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
    94 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so")
   110 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so")
    95 include(CPack)
   111 include(CPack)
    96 
   112 
    97 configure_file(avv/pep.in          avv/pep)
   113 foreach(AVMODULE IN LISTS MODULE_LIST)
    98 configure_file(avv/mood.in         avv/mood)
   114 	configure_file(avv/${AVMODULE}.in avv/${AVMODULE})
    99 configure_file(avv/pep_mood.in     avv/pep_mood)
   115 endforeach(AVMODULE)
   100 configure_file(avv/tune.in         avv/tune)
   116 
   101 configure_file(avv/pep_tune.in     avv/pep_tune)
   117 configure_file(pep.rc.in pep.rc @ONLY)
   102 configure_file(avv/geoloc.in       avv/geoloc)
       
   103 configure_file(avv/pep_geoloc.in   avv/pep_geoloc)
       
   104 configure_file(avv/activity.in     avv/activity)
       
   105 configure_file(avv/pep_activity.in avv/pep_activity)
       
   106 
   118 
   107 ## Installation
   119 ## Installation
   108 install(TARGETS pep mood pep_mood tune pep_tune geoloc pep_geoloc activity pep_activity DESTINATION lib/mcabber) 
   120 install(TARGETS ${MODULE_LIST} DESTINATION lib/mcabber) 
   109 install(FILES pep.rc COPYING TODO README DESTINATION share/doc/${CPACK_PACKAGE_NAME})
   121 install(FILES ${PROJECT_BINARY_DIR}/pep.rc COPYING TODO README DESTINATION share/doc/${CPACK_PACKAGE_NAME})
   110 install(DIRECTORY doc/ DESTINATION share/doc/${CPACK_PACKAGE_NAME})
   122 install(DIRECTORY doc/ DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE)
   111 install(FILES pep.h mood.h tune.h geoloc.h activity.h DESTINATION include/mcabber)
   123 install(FILES pep.h
   112 install(DIRECTORY help DESTINATION share/mcabber)
   124               ${PROJECT_BINARY_DIR}/pep_mood.h
   113 install(DIRECTORY ${PROJECT_BINARY_DIR}/avv/ DESTINATION share/mcabber/avv/modules)
   125 			  ${PROJECT_BINARY_DIR}/pep_tune.h
       
   126 			  ${PROJECT_BINARY_DIR}/pep_geoloc.h
       
   127 			  ${PROJECT_BINARY_DIR}/pep_activity.h DESTINATION include/mcabber)
       
   128 install(DIRECTORY help DESTINATION share/mcabber PATTERN "*~" EXCLUDE)
       
   129 install(DIRECTORY ${PROJECT_BINARY_DIR}/avv/ DESTINATION share/mcabber/avv/modules PATTERN "*~" EXCLUDE)
   114 
   130 
   115 ## The End ## vim: se ts=4: ##
   131 ## The End ## vim: se ts=4: ##