mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
vsomeip: add recipe
The vsomeip stack implements the http://some-ip.com/ (Scalable service-Oriented MiddlewarE over IP (SOME/IP)) protocol. The stack consists out of: a shared library for SOME/IP (libvsomeip3.so) a shared library for SOME/IP's configuration module (libvsomeip3-cfg.so) a shared library for SOME/IP's service discovery (libvsomeip3-sd.so) a shared library for SOME/IP's E2E protection module (libvsomeip3-e2e.so) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
6ce4546d84
commit
59e296dc30
|
|
@ -0,0 +1,28 @@
|
|||
From e8a1b7a176398c2a9b5969f1b48ae0e1aa30f4ec Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Wed, 2 Mar 2022 14:51:13 +0800
|
||||
Subject: [PATCH] Fix pkgconfig dir for multilib
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index add3edda..fea80b4a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -602,7 +602,7 @@ endif()
|
||||
# create pkg-config file
|
||||
if(NOT WIN32)
|
||||
configure_file(${VSOMEIP_NAME}.pc.in ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc @ONLY)
|
||||
- install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION lib/pkgconfig)
|
||||
+ install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION ${INSTALL_LIB_DIR}/pkgconfig)
|
||||
endif()
|
||||
|
||||
##############################################################################
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
From aea4c06ee2a0661d0c7b4773e846276a4f10e2e8 Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Wed, 9 Mar 2022 11:48:44 +0800
|
||||
Subject: [PATCH] Install example configuration files to /etc/vsomeip
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fea80b4a..e7a92ec6 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -501,7 +501,7 @@ install(FILES ${PROJECT_BINARY_DIR}/vsomeip.pc DESTINATION lib/pkgconfig)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
- FILES ${EXAMPLE_CONFIG_FILES} DESTINATION etc/vsomeip COMPONENT config
|
||||
+ FILES ${EXAMPLE_CONFIG_FILES} DESTINATION ${DEFAULT_CONFIGURATION_FOLDER} COMPONENT config
|
||||
)
|
||||
|
||||
# Add all targets to the build-tree export set
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
From e012f91a73af7469ef6f660c3a6a752430a4d649 Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Tue, 11 Jul 2023 16:53:46 +0800
|
||||
Subject: [PATCH] Do not build external gtest
|
||||
|
||||
We don't need to build external gtest since we already depend on
|
||||
googletest.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
CMakeLists.txt | 30 ++----------
|
||||
test/network_tests/CMakeLists.txt | 80 -------------------------------
|
||||
2 files changed, 3 insertions(+), 107 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e7a92ec6..f6c680d4 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -18,14 +18,6 @@ set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP
|
||||
set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentation/doxygen.in
|
||||
set (CMAKE_VERBOSE_MAKEFILE off)
|
||||
|
||||
-if (NOT GTEST_ROOT)
|
||||
- if (DEFINED ENV{GTEST_ROOT})
|
||||
- set(GTEST_ROOT $ENV{GTEST_ROOT})
|
||||
- else()
|
||||
- set(GTEST_ROOT "n/a" CACHE STRING "Path to root folder of googletest. Must be set for building the tests.")
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
###################################################################################################
|
||||
# see http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file
|
||||
###################################################################################################
|
||||
@@ -630,27 +622,11 @@ find_package(benchmark)
|
||||
##############################################################################
|
||||
# google test
|
||||
|
||||
-# check for set environment variable
|
||||
-if(${GTEST_ROOT} STREQUAL "n/a")
|
||||
- message(STATUS "GTEST_ROOT is not defined. For building the tests the variable
|
||||
- GTEST_ROOT has to be defined. Tests can not be built.")
|
||||
- # early exit
|
||||
- return() # test can not be build -> make commands build_tests and check are not available
|
||||
-else()
|
||||
- message(STATUS "GTEST_ROOT is set. gtest root path set to ${GTEST_ROOT}")
|
||||
+find_package(GTest)
|
||||
+if (NOT GTest_FOUND)
|
||||
+ message(WARNING "GTest is not found. Tests can not be built.")
|
||||
endif()
|
||||
|
||||
-# build google test as static library (always) -> therefore deactivate BUILD_SHARED_LIBS in case it is active
|
||||
-set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0)
|
||||
-if ("${BUILD_SHARED_LIBS}" STREQUAL "ON")
|
||||
- set(BUILD_SHARED_LIBS OFF)
|
||||
- set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 1)
|
||||
-endif()
|
||||
-add_subdirectory(${GTEST_ROOT} ${CMAKE_CURRENT_BINARY_DIR}/gtest EXCLUDE_FROM_ALL)
|
||||
-if ("${BUILD_SHARED_LIBS_AUTOMATIC_OFF}" STREQUAL "1")
|
||||
- set(BUILD_SHARED_LIBS ON)
|
||||
- set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0)
|
||||
-endif()
|
||||
|
||||
|
||||
|
||||
diff --git a/test/network_tests/CMakeLists.txt b/test/network_tests/CMakeLists.txt
|
||||
index 6a148604..a501b6a7 100644
|
||||
--- a/test/network_tests/CMakeLists.txt
|
||||
+++ b/test/network_tests/CMakeLists.txt
|
||||
@@ -3633,86 +3633,6 @@ if(NOT ${TESTS_BAT})
|
||||
|
||||
endif()
|
||||
|
||||
-##############################################################################
|
||||
-# Add for every test a dependency to gtest
|
||||
-##############################################################################
|
||||
-
|
||||
-if(NOT ${TESTS_BAT})
|
||||
- add_dependencies(${TEST_CONFIGURATION} gtest)
|
||||
- add_dependencies(${TEST_APPLICATION} gtest)
|
||||
- add_dependencies(${TEST_APPLICATION_SINGLE_PROCESS_NAME} gtest)
|
||||
- add_dependencies(${TEST_APPLICATION_AVAILABILITY_NAME} gtest)
|
||||
- add_dependencies(${TEST_MAGIC_COOKIES_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_MAGIC_COOKIES_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_HEADER_FACTORY} gtest)
|
||||
- add_dependencies(${TEST_HEADER_FACTORY_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_HEADER_FACTORY_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_LOCAL_ROUTING_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_LOCAL_ROUTING_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_EXTERNAL_LOCAL_ROUTING_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_PAYLOAD_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_PAYLOAD_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_BIG_PAYLOAD_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_BIG_PAYLOAD_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_CLIENT_ID_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_CLIENT_ID_UTILITY} gtest)
|
||||
- add_dependencies(${TEST_DEBOUNCE_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_DEBOUNCE_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_EVENT_TWO_EVENTGROUPS_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_EVENT_TWO_EVENTGROUPS_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_CPU_LOAD_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_CPU_LOAD_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_INITIAL_EVENT_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_INITIAL_EVENT_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_INITIAL_EVENT_AVAILABILITY_CHECKER} gtest)
|
||||
- add_dependencies(${TEST_INITIAL_EVENT_STOP_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_OFFER_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_OFFER_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_OFFER_SERVICE_EXTERNAL} gtest)
|
||||
- add_dependencies(${TEST_OFFER_EXTERNAL_SD_MESSAGE_SENDER} gtest)
|
||||
- add_dependencies(${TEST_OFFERED_SERVICES_INFO_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_OFFERED_SERVICES_INFO_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_PENDING_SUBSCRIPTION_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_PENDING_SUBSCRIPTION_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_MALICIOUS_DATA_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_MALICIOUS_DATA_CLIENT} gtest)
|
||||
- if (${TEST_SECURITY})
|
||||
- add_dependencies(${TEST_SECURITY_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_SECURITY_CLIENT} gtest)
|
||||
- endif()
|
||||
- add_dependencies(${TEST_E2E_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_E2E_CLIENT} gtest)
|
||||
- if (${TEST_E2E_PROFILE_04})
|
||||
- add_dependencies(${TEST_E2E_PROFILE_04_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_E2E_PROFILE_04_CLIENT} gtest)
|
||||
- endif()
|
||||
- add_dependencies(${TEST_EVENT_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_EVENT_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_NPDU_SERVICE_ONE} gtest)
|
||||
- add_dependencies(${TEST_NPDU_SERVICE_TWO} gtest)
|
||||
- add_dependencies(${TEST_NPDU_SERVICE_THREE} gtest)
|
||||
- add_dependencies(${TEST_NPDU_SERVICE_FOUR} gtest)
|
||||
- add_dependencies(${TEST_NPDU_CLIENT_ONE} gtest)
|
||||
- add_dependencies(${TEST_NPDU_CLIENT_TWO} gtest)
|
||||
- add_dependencies(${TEST_NPDU_CLIENT_THREE} gtest)
|
||||
- add_dependencies(${TEST_NPDU_CLIENT_FOUR} gtest)
|
||||
- add_dependencies(${TEST_NPDU_DAEMON_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_NPDU_DAEMON_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_SOMEIPTP_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_SOMEIPTP_SERVICE} gtest)
|
||||
- if(${TEST_SECOND_ADDRESS})
|
||||
- add_dependencies(${TEST_SECOND_ADDRESS_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_SECOND_ADDRESS_SERVICE} gtest)
|
||||
- endif()
|
||||
- add_dependencies(${TEST_SUSPEND_RESUME_CLIENT} gtest)
|
||||
- add_dependencies(${TEST_SUSPEND_RESUME_SERVICE} gtest)
|
||||
-else()
|
||||
- add_dependencies(${TEST_LOCAL_ROUTING_SERVICE} gtest)
|
||||
- add_dependencies(${TEST_LOCAL_ROUTING_CLIENT} gtest)
|
||||
-endif()
|
||||
-
|
||||
##############################################################################
|
||||
# Add tests to the target build_network_tests
|
||||
##############################################################################
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
From 69805f9c8973a7a4d29297f8d50c29c88f981bee Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Mon, 17 Jul 2023 14:33:32 +0800
|
||||
Subject: [PATCH] Do not specify PIE flag explicitly
|
||||
|
||||
For nodistro distro, packages are built without PIE because
|
||||
security_flags.inc is not included by default. But in vsomeip, the PIE
|
||||
flag is explicitly specified in CMAKE_CXX_FLAGS, which will cause
|
||||
building with PIE even in nodistro, causing an error when linking the
|
||||
googletest static library:
|
||||
|
||||
TOPDIR/tmp-glibc/work/cortexa53-oe-linux/vsomeip/3.1.20.3-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/../../libexec/aarch64-oe-linux/gcc/aarch64-oe-linux/12.2.0/ld:
|
||||
TOPDIR/tmp-glibc/work/cortexa53-oe-linux/vsomeip/3.1.20.3-r0/recipe-sysroot/usr/lib/libgtest.a(gtest-all.cc.o)(.text+0x4a90):
|
||||
unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `_ZSt4cerr@@GLIBCXX_3.4'
|
||||
|
||||
Remove PIE flag from CMAKE_CXX_FLAGS and only enable PIE flag by
|
||||
including security_flags.inc.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index f6c680d4..dce1e701 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -60,12 +60,12 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
# This is only relevant for GCC and causes warnings on Clang
|
||||
set(EXPORTSYMBOLS "-Wl,-export-dynamic -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exportmap.gcc")
|
||||
- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -pie -Wl,-z,relro,-z,now")
|
||||
+ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -Wl,-z,relro,-z,now")
|
||||
endif()
|
||||
|
||||
set(NO_DEPRECATED "")
|
||||
set(OPTIMIZE "")
|
||||
- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic -Werror -fPIE")
|
||||
+ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic")
|
||||
|
||||
# force all use of std::mutex and std::recursive_mutex to use runtime init
|
||||
# instead of static initialization so mutexes can be hooked to enable PI as needed
|
||||
--
|
||||
2.25.1
|
||||
|
||||
72
meta-networking/recipes-protocols/vsomeip/vsomeip_3.3.8.bb
Normal file
72
meta-networking/recipes-protocols/vsomeip/vsomeip_3.3.8.bb
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
SUMMARY = "The implementation of SOME/IP"
|
||||
DESCRIPTION = "The vsomeip stack implements the http://some-ip.com/ \
|
||||
(Scalable service-Oriented MiddlewarE over IP (SOME/IP)) protocol."
|
||||
HOMEPAGE = "https://github.com/COVESA/vsomeip"
|
||||
SECTION = "net"
|
||||
|
||||
LICENSE = "MPL-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
|
||||
|
||||
SRC_URI = "git://github.com/GENIVI/${BPN}.git;branch=master;protocol=https;name=vsomeip \
|
||||
file://0001-Fix-pkgconfig-dir-for-multilib.patch \
|
||||
file://0002-Install-example-configuration-files-to-etc-vsomeip.patch \
|
||||
file://0003-Do-not-build-external-gtest.patch \
|
||||
file://0004-Do-not-specify-PIE-flag-explicitly.patch \
|
||||
"
|
||||
|
||||
SRCREV = "07464840f503670bc75997b8e926b54734ffa410"
|
||||
|
||||
COMPATIBLE_HOST:mips = "null"
|
||||
COMPATIBLE_HOST:mips64 = "null"
|
||||
COMPATIBLE_HOST:powerpc = "null"
|
||||
COMPATIBLE_HOST:libc-musl = 'null'
|
||||
|
||||
DEPENDS = "boost dlt-daemon googletest"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake pkgconfig
|
||||
|
||||
EXTRA_OECMAKE = "-DINSTALL_LIB_DIR:PATH=${baselib} \
|
||||
-DINSTALL_CMAKE_DIR:PATH=${baselib}/cmake/vsomeip3 \
|
||||
"
|
||||
|
||||
# For vsomeip-test
|
||||
EXTRA_OECMAKE += "-DTEST_IP_MASTER=10.0.3.1 \
|
||||
-DTEST_IP_SLAVE=10.0.3.2 \
|
||||
-DTEST_IP_SLAVE_SECOND=10.0.3.3 \
|
||||
-DTEST_UID=1000 -DTEST_GID=1000 \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}-test = "bash lsof"
|
||||
|
||||
do_compile:append() {
|
||||
cmake_runcmake_build --target examples
|
||||
cmake_runcmake_build --target build_tests
|
||||
}
|
||||
|
||||
do_install:append() {
|
||||
install -d ${D}/opt/${PN}-test/examples
|
||||
install -m 0755 ${B}/examples/*-sample ${D}/opt/${PN}-test/examples
|
||||
install -d ${D}/opt/${PN}-test/examples/routingmanagerd
|
||||
install -m 0755 ${B}/examples/routingmanagerd/routingmanagerd \
|
||||
${D}/opt/${PN}-test/examples/routingmanagerd
|
||||
|
||||
install -d ${D}/opt/${PN}-test/test/test/common
|
||||
cp -rf ${S}/test/common/examples_policies \
|
||||
${D}/opt/${PN}-test/test/test/common/
|
||||
|
||||
for d in unit_tests network_tests; do
|
||||
install -d ${D}/opt/${PN}-test/test/$d
|
||||
cp -f ${B}/test/$d/*test* ${D}/opt/${PN}-test/test/$d
|
||||
done
|
||||
}
|
||||
|
||||
PACKAGES += "${PN}-test"
|
||||
|
||||
FILES:${PN}-dbg += " \
|
||||
/opt/${PN}-test/.debug/* \
|
||||
"
|
||||
FILES:${PN}-test = " \
|
||||
/opt/${PN}-test \
|
||||
"
|
||||
Loading…
Reference in New Issue
Block a user