From 5d4c1882bbb615720f395c4ff7d0a7223cbf3efb Mon Sep 17 00:00:00 2001 From: Aleksandar Donchev Date: Fri, 26 Jun 2015 15:17:40 +0200 Subject: * Common-API 3.1.2 support with dbus/someip binding. Signed-off-by: Christian Linke --- AudioManagerDaemon/CMakeLists.txt | 72 +++++++----- AudioManagerDaemon/fidls/NodeStateManager.fdepl | 6 +- AudioManagerUtilities/src/CAmCommonAPIWrapper.cpp | 17 ++- CMakeLists.txt | 17 ++- cmake/CommonAPI.cmake | 105 +++++++++-------- cmake/TargetArch.cmake | 134 ---------------------- cmake/audiomanagerConfig.cmake.in | 3 +- cmake/config.cmake.in | 3 + 8 files changed, 137 insertions(+), 220 deletions(-) delete mode 100644 cmake/TargetArch.cmake diff --git a/AudioManagerDaemon/CMakeLists.txt b/AudioManagerDaemon/CMakeLists.txt index b52e625..659d627 100644 --- a/AudioManagerDaemon/CMakeLists.txt +++ b/AudioManagerDaemon/CMakeLists.txt @@ -51,7 +51,7 @@ endif(WITH_DBUS_WRAPPER) if(WITH_CAPI_WRAPPER) INCLUDE (CommonAPI) - LOAD_COMMONAPI(DBUS) + LOAD_COMMONAPI() endif(WITH_CAPI_WRAPPER) set (AM_LINK_LIBS @@ -99,23 +99,23 @@ if(WITH_DBUS_WRAPPER) set (AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} "${AUDIOMANAGER_UTILITIES_SRC}/CAmDbusWrapper.cpp") - set (AM_LINK_LIBS - ${AM_LINK_LIBS} - ${DBUS_LIBRARY}) + set (AM_LINK_LIBS ${AM_LINK_LIBS} ${DBUS_LIBRARY}) endif(WITH_DBUS_WRAPPER) -set (AM_LINK_LIBS - ${AM_LINK_LIBS} - ${DBUS_LIBRARY}) - if(WITH_CAPI_WRAPPER) - set (AUDIOMAN_SRCS_CXX - ${AUDIOMAN_SRCS_CXX} - "${AUDIOMANAGER_UTILITIES_SRC}/CAmCommonAPIWrapper.cpp") - set (AM_LINK_LIBS - ${AM_LINK_LIBS} - ${CommonAPI-DBus_LIBRARY} - ${CommonAPI_LIBRARY}) + set (AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} "${AUDIOMANAGER_UTILITIES_SRC}/CAmCommonAPIWrapper.cpp") + set (AM_LINK_LIBS ${AM_LINK_LIBS} ${CommonAPI_LIBRARY}) + if(${COMMONAPI_USED_BINDING} EQUAL 0) + set (AM_LINK_LIBS ${AM_LINK_LIBS} + ${CommonAPI-DBus_LIBRARY} + ${DBUS_LIBRARY} + ${CommonAPI_LIBRARY}) + else() + set (AM_LINK_LIBS ${AM_LINK_LIBS} + ${CommonAPI-SomeIP_LIBRARY} + ${CommonAPI_LIBRARY}) + endif() + endif(WITH_CAPI_WRAPPER) if(WITH_NSM) @@ -156,21 +156,37 @@ INCLUDE_DIRECTORIES( if(WITH_CAPI_WRAPPER) if(WITH_NSM) - COMMON_API_GENERATE_SOUCRES(TARGET COMMON_API - FIDLS fidls/NodeStateManager.fdepl # a list with fidls - DESTINATION src-gen # a relative path to the build directory or an absolute path - ALT_DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/src-gen # an alternative relative/absolute path with common-api sources, usually in the source tree + COMMON_API_GENERATE_SOUCRES( + TARGET COMMON_API + # A list with fidls for the generic generator. + FIDLS_GENERIC fidls/NodeStateManager.fdepl + # A list with fidls for the binding generator. + FIDLS_BINDING fidls/NodeStateManager.fdepl + # A relative path to the build directory or an absolute path. + DESTINATION src-gen + # An alternative relative/absolute path with common-api sources, usually in the source tree. + ALT_DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/src-gen ) set(AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} ${COMMON_API_GEN_SOURCES}) endif(WITH_NSM) - - INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} - ${COMMONAPI_DBUS_INCLUDE_DIRS} - ${COMMONAPI_INCLUDE_DIRS} - ${COMMON_API_GEN_INCLUDE_DIR}) + + if(${COMMONAPI_USED_BINDING} EQUAL 0) + INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} + ${COMMONAPI_DBUS_INCLUDE_DIRS} + ${COMMONAPI_INCLUDE_DIRS} + ${COMMON_API_GEN_INCLUDE_DIR} + ${DBUS_ARCH_INCLUDE_DIR} + ${DBUS_INCLUDE_DIR}) + else() + INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} + ${VSOMEIP_INCLUDE_DIRS} + ${COMMONAPI_INCLUDE_DIRS} + ${COMMONAPI_SOMEIP_INCLUDE_DIRS} + ${COMMON_API_GEN_INCLUDE_DIR}) + endif() endif(WITH_CAPI_WRAPPER) if(WITH_DLT) @@ -181,11 +197,11 @@ if(WITH_DLT) ${DLT_LIBRARIES}) endif(WITH_DLT) -#if(WITH_DBUS_WRAPPER) +if(WITH_DBUS_WRAPPER) INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} - ${DBUS_ARCH_INCLUDE_DIR} - ${DBUS_INCLUDE_DIR}) -#endif(WITH_DBUS_WRAPPER) + ${DBUS_ARCH_INCLUDE_DIR} + ${DBUS_INCLUDE_DIR}) +endif(WITH_DBUS_WRAPPER) ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX}) diff --git a/AudioManagerDaemon/fidls/NodeStateManager.fdepl b/AudioManagerDaemon/fidls/NodeStateManager.fdepl index 489e85e..e772022 100644 --- a/AudioManagerDaemon/fidls/NodeStateManager.fdepl +++ b/AudioManagerDaemon/fidls/NodeStateManager.fdepl @@ -1,6 +1,6 @@ -import "platform:/plugin/org.genivi.commonapi.dbus/deployment/CommonAPI-DBus_deployment.fdepl" +import "platform:/plugin/org.genivi.commonapi.dbus/deployment/CommonAPI-DBus_deployment_spec.fdepl" import "NodeStateManager.fidl" - + define org.genivi.commonapi.dbus.deployment for interface org.genivi.NodeStateManager.Consumer { - PropertiesType=freedesktop + DBusDefaultAttributeType=freedesktop } diff --git a/AudioManagerUtilities/src/CAmCommonAPIWrapper.cpp b/AudioManagerUtilities/src/CAmCommonAPIWrapper.cpp index 9bfeadb..0c00d62 100644 --- a/AudioManagerUtilities/src/CAmCommonAPIWrapper.cpp +++ b/AudioManagerUtilities/src/CAmCommonAPIWrapper.cpp @@ -32,7 +32,12 @@ #ifndef COMMONAPI_INTERNAL_COMPILATION #define COMMONAPI_INTERNAL_COMPILATION +#if COMMONAPI_USED_BINDING > 0 +#include +#else #include +#endif + #undef COMMONAPI_INTERNAL_COMPILATION #endif @@ -69,9 +74,15 @@ CAmCommonAPIWrapper::CAmCommonAPIWrapper(CAmSocketHandler* socketHandler): mFactory = runtime->createFactory(mContext); assert(mFactory); #else - mFactory = CommonAPI::DBus::Factory::get(); - assert(mFactory); - mRuntime->registerFactory("dbus", mFactory); + #if COMMONAPI_USED_BINDING > 0 + mFactory = CommonAPI::SomeIP::Factory::get(); + assert(mFactory); + mRuntime->registerFactory("someip", mFactory); + #else + mFactory = CommonAPI::DBus::Factory::get(); + assert(mFactory); + mRuntime->registerFactory("dbus", mFactory); + #endif #endif //Make subscriptions diff --git a/CMakeLists.txt b/CMakeLists.txt index 1787a0c..7ae5def 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,20 +68,32 @@ option( WITH_NSM option ( WITH_DATABASE_STORAGE "Build with sqlite as in memory storage" OFF) - + set (WITH_COMMON_API_GEN ON CACHE INTERNAL "hide this!" FORCE) if (WITH_ENABLED_IPC STREQUAL "DBUS") set (WITH_DBUS_WRAPPER ON CACHE INTERNAL "hide this!" FORCE) set (WITH_CAPI_WRAPPER OFF CACHE INTERNAL "hide this!" FORCE) + unset(USE_CAPI_BINDING CACHE) elseif(WITH_ENABLED_IPC STREQUAL "CAPI") set (WITH_CAPI_WRAPPER ON CACHE INTERNAL "hide this!" FORCE) - set (WITH_DBUS_WRAPPER OFF CACHE INTERNAL "hide this!" FORCE) + set (WITH_DBUS_WRAPPER OFF CACHE INTERNAL "hide this!" FORCE) + set (USE_CAPI_BINDING "DBUS" CACHE STRING "Select prefered binding for common-api 'DBUS' or 'SOMEIP'") + set_property(CACHE USE_CAPI_BINDING PROPERTY STRINGS "DBUS" "SOMEIP") elseif(WITH_ENABLED_IPC STREQUAL "NONE") set (WITH_CAPI_WRAPPER OFF CACHE INTERNAL "hide this!" FORCE) set (WITH_DBUS_WRAPPER OFF CACHE INTERNAL "hide this!" FORCE) + unset(USE_CAPI_BINDING CACHE) endif () +if (USE_CAPI_BINDING STREQUAL "SOMEIP") + set(COMMONAPI_USED_BINDING 1 CACHE INTERNAL "hide this!" FORCE) +elseif (USE_CAPI_BINDING STREQUAL "DBUS") + set(COMMONAPI_USED_BINDING 0 CACHE INTERNAL "hide this!" FORCE) +else() + unset(COMMONAPI_USED_BINDING CACHE) +endif() + set(DBUS_SERVICE_PREFIX "org.genivi.audiomanager" CACHE PROPERTY "The dbus service prefix for the AM - only changable for legacy dbus") @@ -273,3 +285,4 @@ add_custom_target(test-install configure_file( ${CMAKE_SOURCE_DIR}/AudioManagerDaemon/docx/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile ) configure_file( ${CMAKE_SOURCE_DIR}/cmake/config.cmake.in ${CMAKE_BINARY_DIR}/include/config.h ) + diff --git a/cmake/CommonAPI.cmake b/cmake/CommonAPI.cmake index f98bcda..45c1078 100755 --- a/cmake/CommonAPI.cmake +++ b/cmake/CommonAPI.cmake @@ -11,7 +11,7 @@ # A list with include directories include(CMakeParseArguments) -include(TargetArch) + MACRO(LOAD_COMMONAPI) #parse the input parameters @@ -20,14 +20,12 @@ MACRO(LOAD_COMMONAPI) set(multiValueArgs "") cmake_parse_arguments(PARAMS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - # check the binding parameter ... if(PARAMS_DBUS) SET(COMMONAPI_USED_BINDING 0 CACHE INTERNAL "hide this!" FORCE) elseif(PARAMS_SOMEIP) SET(COMMONAPI_USED_BINDING 1 CACHE INTERNAL "hide this!" FORCE) - else() - SET(COMMONAPI_USED_BINDING 0 CACHE INTERNAL "hide this!" FORCE) endif() + # load the proper libs ... IF(NOT CommonAPI_FOUND) FIND_PACKAGE(CommonAPI REQUIRED) @@ -47,6 +45,7 @@ MACRO(LOAD_COMMONAPI) IF(${COMMONAPI_USED_BINDING} EQUAL 1) IF(NOT CommonAPI-SomeIP_FOUND) + FIND_PACKAGE (vsomeip REQUIRED) FIND_PACKAGE(CommonAPI-SomeIP REQUIRED CONFIG NO_CMAKE_PACKAGE_REGISTRY) FIND_LIBRARY(CommonAPI-SomeIP_LIBRARY REQUIRED @@ -82,15 +81,12 @@ MACRO(LOAD_COMMONAPI) ENDMACRO() # helper function giving a string with the current architecture -function(GET_TARGET_ARCH OUT_ARCH) - target_architecture(TARGET_ARCH) - IF("${TARGET_ARCH}" STREQUAL "i386") - SET(${OUT_ARCH} "x86" PARENT_SCOPE) - ELSEIF("${TARGET_ARCH}" STREQUAL "x86_64") +function(GET_TARGET_ARCH OUT_ARCH) + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(${OUT_ARCH} "x86_64" PARENT_SCOPE) - ELSE() - SET(${OUT_ARCH} "x86_64" PARENT_SCOPE) - ENDIF() + ELSE() + SET(${OUT_ARCH} "x86" PARENT_SCOPE) + ENDIF() endfunction() # helper function giving a string with the current host @@ -138,13 +134,12 @@ macro(GET_GENERATED_FILES GEN_DESTINATION) LIST(REMOVE_DUPLICATES CAPI_SOURCES) set(${PARAMS_TARGET}_GEN_HEADERS ${CAPI_HEADERS} PARENT_SCOPE) - set(${PARAMS_TARGET}_GEN_SOURCES ${CAPI_SOURCES} PARENT_SCOPE) - + set(${PARAMS_TARGET}_GEN_SOURCES ${CAPI_SOURCES} PARENT_SCOPE) #add base path src-gen SET(${PARAMS_TARGET}_GEN_INCLUDE_DIR ${CAPI_INCLUDES} ${GEN_DESTINATION} PARENT_SCOPE) endmacro(GET_GENERATED_FILES) -macro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT) +macro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT FIDLS) MESSAGE(STATUS "Searching for common-api generator executable ${GENERATOR_EXECUTABLE} ...") # find the generator binary ... execute_process(COMMAND find "/usr/local/share/CommonAPI-${CommonAPI_VERSION}" -name ${GENERATOR_EXECUTABLE} @@ -164,7 +159,7 @@ macro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT) message(STATUS "Common-api generator can't be found. Will try the alternative folder!") ELSE() # the generator binary is found - MESSAGE(STATUS "Will execute common-api generator at path ${OUT_RESULT}") + MESSAGE(STATUS "Will execute common-api generator at path ${OUT_RESULT} with ${FIDLS}") function(mktmpdir OUTVAR) while(NOT TEMP_DESTINATION OR EXISTS ${TEMP_DESTINATION}) string(RANDOM LENGTH 16 TEMP_DESTINATION) @@ -175,9 +170,9 @@ macro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT) set(${OUTVAR} ${TEMP_DESTINATION} PARENT_SCOPE) endfunction() - # execute the generate command ... + # execute the generate command ... IF(${SHOULD_GENERATE_STUB_DEFAULT} EQUAL 1) - execute_process(COMMAND ${OUT_RESULT} -sk Default -d ${PARAMS_DESTINATION} ${FIDLS} + execute_process(COMMAND ${OUT_RESULT} -sk Default -d ${PARAMS_DESTINATION} ${FIDLS} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} RESULT_VARIABLE EXIT_CODE OUTPUT_VARIABLE GENERATOR_OUTPUT @@ -185,13 +180,13 @@ macro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT) OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE) ELSE() - execute_process(COMMAND ${OUT_RESULT} -d ${PARAMS_DESTINATION} ${FIDLS} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE EXIT_CODE - OUTPUT_VARIABLE GENERATOR_OUTPUT - ERROR_VARIABLE GENERATOR_ERR_OUTPUT - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${OUT_RESULT} -d ${PARAMS_DESTINATION} ${FIDLS} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE EXIT_CODE + OUTPUT_VARIABLE GENERATOR_OUTPUT + ERROR_VARIABLE GENERATOR_ERR_OUTPUT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_STRIP_TRAILING_WHITESPACE) ENDIF() if(EXIT_CODE) message(FATAL_ERROR "Failed to generate files from FIDL:${GENERATOR_OUTPUT}") @@ -200,7 +195,7 @@ macro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT) endif() SET(TEMP_GEN_DST ${PARAMS_DESTINATION}) ENDIF() -endmacro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE ADDITIONAL_ARGS) +endmacro(FIND_AND_EXEC_GENERATOR GENERATOR_EXECUTABLE SHOULD_GENERATE_STUB_DEFAULT FIDLS) # generate common-api sources and retreive a list with them MACRO(EXECUTE_GENERATOR) @@ -222,22 +217,37 @@ MACRO(EXECUTE_GENERATOR) SET(GENERATE_STUB 0) ENDIF() # searching for common-api-generator executable ... - FIND_AND_EXEC_GENERATOR(${COMMONAPI_GENERATOR_EXECUTABLE} ${GENERATE_STUB}) - FIND_AND_EXEC_GENERATOR(${COMMONAPI_BINDING_GENERATOR_EXECUTABLE} FALSE) + FOREACH(FIDL ${IN_FIDLS_GENERIC}) + FIND_AND_EXEC_GENERATOR(${COMMONAPI_GENERATOR_EXECUTABLE} ${GENERATE_STUB} ${FIDL}) + ENDFOREACH() + FOREACH(FIDL ${IN_FIDLS_BINDING}) + FIND_AND_EXEC_GENERATOR(${COMMONAPI_BINDING_GENERATOR_EXECUTABLE} FALSE ${FIDL}) + ENDFOREACH() # get the lists with the sources and headers message(STATUS "Looking for generated common-api files...") GET_GENERATED_FILES(${TEMP_GEN_DST}) ENDMACRO(EXECUTE_GENERATOR) +# Function COMMON_API_GENERATE_SOUCRES +# +# TARGET COMMON_API +# FIDLS_GENERIC a list with fidls for the generic generator. +# FIDLS_BINDING a list with fidls for the binding generator. +# DESTINATION a relative path to the build directory or an absolute path. +# ALT_DESTINATION an alternative relative/absolute path with common-api sources, usually in the source tree. FUNCTION(COMMON_API_GENERATE_SOUCRES) #parse the input parameters set(options "") set(oneValueArgs TARGET DESTINATION ALT_DESTINATION HEADER_TEMPLATE) - set(multiValueArgs FIDLS FIDL_DEPENDS) + set(multiValueArgs FIDLS_GENERIC FIDLS_BINDING) cmake_parse_arguments(PARAMS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(NOT IS_ABSOLUTE ${PARAMS_DESTINATION}) + if(NOT PARAMS_TARGET) + message(FATAL_ERROR "TARGET must be specified") + endif() + + if(NOT IS_ABSOLUTE ${PARAMS_DESTINATION}) set(PARAMS_DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${PARAMS_DESTINATION}) endif() @@ -254,38 +264,35 @@ FUNCTION(COMMON_API_GENERATE_SOUCRES) GET_GENERATED_FILES(${PARAMS_ALT_DESTINATION}) ENDIF() ELSE() - - if(NOT PARAMS_FIDLS) + if(NOT PARAMS_FIDLS_GENERIC) message(FATAL_ERROR "FIDLS must be specified") endif() - if(NOT PARAMS_TARGET) - message(FATAL_ERROR "TARGET must be specified") - endif() - if(PARAMS_HEADER_TEMPLATE) list(APPEND ARGS -pref ${PARAMS_HEADER_TEMPLATE}) endif() - foreach(FIDL ${PARAMS_FIDLS}) + # Run configure_file on each .fidl which forces cmake to reexecute its configure phase if the input file changes. + foreach(FIDL ${PARAMS_FIDLS_GENERIC}) get_filename_component(FIDL_PATH ${FIDL} ABSOLUTE) - - # Run configure_file on the .fidl - this forces cmake to reexecute its - # configure phase if the input file changes. string(MD5 ${FIDL_PATH} FIDL_CHECKSUM) configure_file(${FIDL_PATH} ${CMAKE_CURRENT_BINARY_DIR}/${FIDL_CHECKSUM}.fidl.done) - - list(APPEND FIDLS ${FIDL_PATH}) + list(APPEND IN_FIDLS_GENERIC ${FIDL_PATH}) endforeach() + + if(PARAMS_FIDLS_BINDING) + foreach(FIDL ${PARAMS_FIDLS_BINDING}) + get_filename_component(FIDL_PATH ${FIDL} ABSOLUTE) + string(MD5 ${FIDL_PATH} FIDL_CHECKSUM) + configure_file(${FIDL_PATH} ${CMAKE_CURRENT_BINARY_DIR}/${FIDL_CHECKSUM}.fidl.done) + list(APPEND IN_FIDLS_BINDING ${FIDL_PATH}) + endforeach() + else() + SET(IN_FIDLS_BINDING ${IN_FIDLS_GENERIC}) + endif() - message(STATUS "Will generate common-api files for ${PARAMS_FIDLS} ...") - - foreach(FIDL_DEPEND ${PARAMS_FIDL_DEPENDS}) - string(MD5 ${FIDL_PATH} FIDL_CHECKSUM) - configure_file(${FIDL_PATH} ${CMAKE_CURRENT_BINARY_DIR}/${FIDL_CHECKSUM}.fidl.done) - endforeach() # run the generator ... EXECUTE_GENERATOR() - ENDIF() + ENDIF() ENDFUNCTION() diff --git a/cmake/TargetArch.cmake b/cmake/TargetArch.cmake deleted file mode 100644 index 3761e4d..0000000 --- a/cmake/TargetArch.cmake +++ /dev/null @@ -1,134 +0,0 @@ -# Based on the Qt 5 processor detection code, so should be very accurate -# https://qt.gitorious.org/qt/qtbase/blobs/master/src/corelib/global/qprocessordetection.h -# Currently handles arm (v5, v6, v7), x86 (32/64), ia64, and ppc (32/64) - -# Regarding POWER/PowerPC, just as is noted in the Qt source, -# "There are many more known variants/revisions that we do not handle/detect." - -set(archdetect_c_code " -#if defined(__arm__) || defined(__TARGET_ARCH_ARM) - #if defined(__ARM_ARCH_7__) \\ - || defined(__ARM_ARCH_7A__) \\ - || defined(__ARM_ARCH_7R__) \\ - || defined(__ARM_ARCH_7M__) \\ - || (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 7) - #error cmake_ARCH armv7 - #elif defined(__ARM_ARCH_6__) \\ - || defined(__ARM_ARCH_6J__) \\ - || defined(__ARM_ARCH_6T2__) \\ - || defined(__ARM_ARCH_6Z__) \\ - || defined(__ARM_ARCH_6K__) \\ - || defined(__ARM_ARCH_6ZK__) \\ - || defined(__ARM_ARCH_6M__) \\ - || (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 6) - #error cmake_ARCH armv6 - #elif defined(__ARM_ARCH_5TEJ__) \\ - || (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 5) - #error cmake_ARCH armv5 - #else - #error cmake_ARCH arm - #endif -#elif defined(__i386) || defined(__i386__) || defined(_M_IX86) - #error cmake_ARCH i386 -#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64) - #error cmake_ARCH x86_64 -#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) - #error cmake_ARCH ia64 -#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) \\ - || defined(_ARCH_COM) || defined(_ARCH_PWR) || defined(_ARCH_PPC) \\ - || defined(_M_MPPC) || defined(_M_PPC) - #if defined(__ppc64__) || defined(__powerpc64__) || defined(__64BIT__) - #error cmake_ARCH ppc64 - #else - #error cmake_ARCH ppc - #endif -#endif - -#error cmake_ARCH unknown -") - -# Set ppc_support to TRUE before including this file or ppc and ppc64 -# will be treated as invalid architectures since they are no longer supported by Apple - -function(target_architecture output_var) - if(APPLE AND CMAKE_OSX_ARCHITECTURES) - # On OS X we use CMAKE_OSX_ARCHITECTURES *if* it was set - # First let's normalize the order of the values - - # Note that it's not possible to compile PowerPC applications if you are using - # the OS X SDK version 10.6 or later - you'll need 10.4/10.5 for that, so we - # disable it by default - # See this page for more information: - # http://stackoverflow.com/questions/5333490/how-can-we-restore-ppc-ppc64-as-well-as-full-10-4-10-5-sdk-support-to-xcode-4 - - # Architecture defaults to i386 or ppc on OS X 10.5 and earlier, depending on the CPU type detected at runtime. - # On OS X 10.6+ the default is x86_64 if the CPU supports it, i386 otherwise. - - foreach(osx_arch ${CMAKE_OSX_ARCHITECTURES}) - if("${osx_arch}" STREQUAL "ppc" AND ppc_support) - set(osx_arch_ppc TRUE) - elseif("${osx_arch}" STREQUAL "i386") - set(osx_arch_i386 TRUE) - elseif("${osx_arch}" STREQUAL "x86_64") - set(osx_arch_x86_64 TRUE) - elseif("${osx_arch}" STREQUAL "ppc64" AND ppc_support) - set(osx_arch_ppc64 TRUE) - else() - message(FATAL_ERROR "Invalid OS X arch name: ${osx_arch}") - endif() - endforeach() - - # Now add all the architectures in our normalized order - if(osx_arch_ppc) - list(APPEND ARCH ppc) - endif() - - if(osx_arch_i386) - list(APPEND ARCH i386) - endif() - - if(osx_arch_x86_64) - list(APPEND ARCH x86_64) - endif() - - if(osx_arch_ppc64) - list(APPEND ARCH ppc64) - endif() - else() - file(WRITE "${CMAKE_BINARY_DIR}/arch.c" "${archdetect_c_code}") - - enable_language(C) - - # Detect the architecture in a rather creative way... - # This compiles a small C program which is a series of ifdefs that selects a - # particular #error preprocessor directive whose message string contains the - # target architecture. The program will always fail to compile (both because - # file is not a valid C program, and obviously because of the presence of the - # #error preprocessor directives... but by exploiting the preprocessor in this - # way, we can detect the correct target architecture even when cross-compiling, - # since the program itself never needs to be run (only the compiler/preprocessor) - try_run( - run_result_unused - compile_result_unused - "${CMAKE_BINARY_DIR}" - "${CMAKE_BINARY_DIR}/arch.c" - COMPILE_OUTPUT_VARIABLE ARCH - CMAKE_FLAGS CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} - ) - - # Parse the architecture name from the compiler output - string(REGEX MATCH "cmake_ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}") - - # Get rid of the value marker leaving just the architecture name - string(REPLACE "cmake_ARCH " "" ARCH "${ARCH}") - - # If we are compiling with an unknown architecture this variable should - # already be set to "unknown" but in the case that it's empty (i.e. due - # to a typo in the code), then set it to unknown - if (NOT ARCH) - set(ARCH unknown) - endif() - endif() - - set(${output_var} "${ARCH}" PARENT_SCOPE) -endfunction() diff --git a/cmake/audiomanagerConfig.cmake.in b/cmake/audiomanagerConfig.cmake.in index fa992ce..fb6fd36 100644 --- a/cmake/audiomanagerConfig.cmake.in +++ b/cmake/audiomanagerConfig.cmake.in @@ -34,7 +34,8 @@ set(WRITE_COMMONAPI_DBUS_CONFIG_FILE "@WRITE_COMMONAPI_DBUS_CONFIG_FILE@") set(TCLAP_INCLUDE_DIR "@TCLAP_INCLUDE_DIR@") set(COMMONAPI_VERSION_NUMBER "@COMMONAPI_VERSION_NUMBER@") set(COMMONAPI_DBUS_VERSION_NUMBER "@COMMONAPI_DBUS_VERSION_NUMBER@") - +set(COMMONAPI_SOMEIP_VERSION_NUMBER "@COMMONAPI_SOMEIP_VERSION_NUMBER@") +set(COMMONAPI_USED_BINDING "@COMMONAPI_USED_BINDING@") IF(WITH_TESTS) set_and_check(GOOGLE_MOCK_PROJECT_FOLDER "@GOOGLE_MOCK_PROJECT_FOLDER@") diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in index 3e1095f..b5f978b 100644 --- a/cmake/config.cmake.in +++ b/cmake/config.cmake.in @@ -34,6 +34,9 @@ #cmakedefine AM_SHARE_FOLDER "@AM_SHARE_FOLDER@" #cmakedefine COMMONAPI_VERSION_NUMBER @COMMONAPI_VERSION_NUMBER@ #cmakedefine COMMONAPI_DBUS_VERSION_NUMBER @COMMONAPI_DBUS_VERSION_NUMBER@ +#cmakedefine COMMONAPI_SOMEIP_VERSION_NUMBER @COMMONAPI_SOMEIP_VERSION_NUMBER@ +#cmakedefine COMMONAPI_USED_BINDING @COMMONAPI_USED_BINDING@ + enum { DYNAMIC_ID_BOUNDARY = @DYNAMIC_ID_BOUNDARY@ }; -- cgit v1.2.1