From adf0d48f869007e4527b00e1a346ed37ee82cc1a Mon Sep 17 00:00:00 2001 From: christian mueller Date: Wed, 18 Jan 2012 13:28:09 +0100 Subject: [PATCH] * fix for package building with lower cmake versions * fix DBus interface to be GLIB tolerant 32bit types --- CMakeLists.txt | 34 +++++++++++++++++----- .../src/DBusMessageHandler.cpp | 8 +++++ cmake/config.cmake | 1 + includes/config.h | 11 +++---- 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c156fc..2bb1046 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,12 @@ OPTION( WITH_PPOLL OPTION( WITH_TELNET "build with Telnetserver" OFF) + +OPTION ( USE_BUILD_LIBS + "build with default library path = build path" ON) + +OPTION ( GLIB_DBUS_TYPES_TOLERANT + "build dbus with tolerance towards glib 16bit/32bit handling" ON) #Can be changed via passing -DDBUS_SERVICE_PREFIX="XXX" to cmake IF(NOT DEFINED DBUS_SERVICE_PREFIX) @@ -205,6 +211,7 @@ ENDFOREACH(dep) STRING(REGEX REPLACE ".$" "" dev_DEPENDENCIES ${dev_DEPENDENCIES}) list(REMOVE_DUPLICATES ALL_DEPEND) +list(REMOVE_ITEM ALL_DEPEND "audiomanager-bin") FOREACH (dep ${ALL_DEPEND}) SET(all_DEPENDENCIES "${dep} ,${all_DEPENDENCIES}") ENDFOREACH(dep) @@ -212,25 +219,36 @@ STRING(REGEX REPLACE ".$" "" all_DEPENDENCIES ${all_DEPENDENCIES}) execute_process(COMMAND cp ${CMAKE_MODULE_PATH}/add_package_dependencies.sh ${CMAKE_CURRENT_BINARY_DIR}) #component based dep package generation is only supported above 2.8.5 -IF (${CMAKE_VERSION} VERSION_GREATER 2.8.4) +IF (${CMAKE_VERSION} VERSION_GREATER 2.9.4) SET(CPACK_COMPONENTS_ALL bin sampleplugins tests dev) SET(CPACK_COMPONENTS_IGNORE_GROUPS 1) - SET(CPACK_RPM_COMPONENT_INSTALL ON) SET(CPACK_DEB_COMPONENT_INSTALL ON) ADD_CUSTOM_TARGET(genivi_package + COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR} -DUSE_BUILD_LIBS=ON COMMAND make package COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux-bin.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${bin_DEPENDENCIES}\" COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux-sampleplugins.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${sampleplugins_DEPENDENCIES}\" COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux-tests.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${tests_DEPENDENCIES}\" COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux-dev.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${dev_DEPENDENCIES}\" ) -ELSE (${CMAKE_VERSION} VERSION_GREATER 2.8.4) - ADD_CUSTOM_TARGET(genivi_package - COMMAND make package - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${all_DEPENDENCIES}\" - ) -ENDIF (${CMAKE_VERSION} VERSION_GREATER 2.8.4) +ELSE (${CMAKE_VERSION} VERSION_GREATER 2.9.4) + IF(${CMAKE_VERSION} VERSION_GREATER 2.8.3) + ADD_CUSTOM_TARGET(genivi_package + COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR} -DUSE_BUILD_LIBS=ON + COMMAND make package + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${all_DEPENDENCIES}\" + ) + ELSE(${CMAKE_VERSION} VERSION_GREATER 2.8.3) + ADD_CUSTOM_TARGET(genivi_package + COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR} -DUSE_BUILD_LIBS=ON + COMMAND make package + COMMAND mkdir -p ../${CPACK_OUTPUT_FILE_PREFIX} + COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux.deb ${CPACK_OUTPUT_FILE_PREFIX} + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/add_package_dependencies.sh ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux.deb ${CPACK_OUTPUT_FILE_PREFIX} \"${all_DEPENDENCIES}\" + ) + ENDIF(${CMAKE_VERSION} VERSION_GREATER 2.8.3) +ENDIF (${CMAKE_VERSION} VERSION_GREATER 2.9.4) INCLUDE(CPack) diff --git a/PluginCommandInterfaceDbus/src/DBusMessageHandler.cpp b/PluginCommandInterfaceDbus/src/DBusMessageHandler.cpp index 856dbd0..adc157f 100644 --- a/PluginCommandInterfaceDbus/src/DBusMessageHandler.cpp +++ b/PluginCommandInterfaceDbus/src/DBusMessageHandler.cpp @@ -171,7 +171,11 @@ dbus_uint16_t DBusMessageHandler::getUInt() { dbus_uint16_t param; +#ifdef GLIB_DBUS_TYPES_TOLERANT + if (DBUS_TYPE_UINT16 != dbus_message_iter_get_arg_type(&mDBusMessageIter) && DBUS_TYPE_UINT32 != dbus_message_iter_get_arg_type(&mDBusMessageIter)) +#else if (DBUS_TYPE_UINT16 != dbus_message_iter_get_arg_type(&mDBusMessageIter)) +#endif { DLT_LOG(DLT_CONTEXT,DLT_LOG_ERROR, DLT_STRING("DBusMessageHandler::getUInt DBUS handler argument is no uint16_t!")); mErrorName=std::string(DBUS_ERROR_INVALID_ARGS); @@ -189,7 +193,11 @@ dbus_int16_t DBusMessageHandler::getInt() { dbus_int16_t param; +#ifdef GLIB_DBUS_TYPES_TOLERANT + if (DBUS_TYPE_INT16 != dbus_message_iter_get_arg_type(&mDBusMessageIter) && DBUS_TYPE_INT32 != dbus_message_iter_get_arg_type(&mDBusMessageIter)) +#else if (DBUS_TYPE_INT16 != dbus_message_iter_get_arg_type(&mDBusMessageIter)) +#endif { DLT_LOG(DLT_CONTEXT,DLT_LOG_ERROR, DLT_STRING("DBusMessageHandler::getInt DBUS handler argument is no int16_t!")); mErrorName=std::string(DBUS_ERROR_INVALID_ARGS); diff --git a/cmake/config.cmake b/cmake/config.cmake index a0856db..c753c32 100644 --- a/cmake/config.cmake +++ b/cmake/config.cmake @@ -8,6 +8,7 @@ #cmakedefine WITH_SIMPLEDBUS_LOOP #cmakedefine WITH_PPOLL #cmakedefine WITH_TELNET +#cmakedefine GLIB_DBUS_TYPES_TOLERANT #cmakedefine DEFAULT_PLUGIN_COMMAND_DIR "@DEFAULT_PLUGIN_COMMAND_DIR@" #cmakedefine DEFAULT_PLUGIN_ROUTING_DIR "@DEFAULT_PLUGIN_ROUTING_DIR@" diff --git a/includes/config.h b/includes/config.h index 193da1c..db5b56d 100644 --- a/includes/config.h +++ b/includes/config.h @@ -1,17 +1,18 @@ #ifndef _CONFIG_H #define _CONFIG_H -#define DAEMONVERSION "ver-0.0.1-8-g126870e" +#define DAEMONVERSION "ver-0.0.1-11-g64ba8be" #define WITH_DBUS_WRAPPER #define WITH_SOCKETHANDLER_LOOP /* #undef WITH_SIMPLEDBUS_LOOP */ #define WITH_PPOLL /* #undef WITH_TELNET */ +/* #undef GLIB_DBUS_TYPES_TOLERANT */ -#define DEFAULT_PLUGIN_COMMAND_DIR "/usr/local/lib/audioManager/command" -#define DEFAULT_PLUGIN_ROUTING_DIR "/usr/local/lib/audioManager/routing" -#define CONTROLLER_PLUGIN "/usr/local/lib/audioManager/control/libPluginControlInterface.so" +#define DEFAULT_PLUGIN_COMMAND_DIR "/home/christian/workspace/AudioManager/bin/plugins/command" +#define DEFAULT_PLUGIN_ROUTING_DIR "/home/christian/workspace/AudioManager/bin/plugins/routing" +#define CONTROLLER_PLUGIN "/home/christian/workspace/AudioManager/bin/plugins/control/libPluginControlInterface.so" #define DEFAULT_TELNETPORT 6060 #define MAX_TELNETCONNECTIONS 3 @@ -19,6 +20,6 @@ #define DBUS_SERVICE_PREFIX "org.genivi.audiomanager" #define DBUS_SERVICE_OBJECT_PATH "/org/genivi/audiomanager" -#define INTROSPECTION_COMMAND_XML_FILE "/home/christian/workspace/gitserver/includes/dbus/CommandInterface.xml" +#define INTROSPECTION_COMMAND_XML_FILE "/home/christian/workspace/AudioManager/includes/dbus/CommandInterface.xml" #endif /* _CONFIG_H */ -- 2.7.4