opentelemetry-cpp: fix non-default PACKAGECONFIG options

1. Delete the build_package PACKAGECONFIG - it is used to build a deb/rpm package,
which is handled by Yocto.
2. Add the required build time dependencies for the other PACKAGECONFIG options,
as many of them were broken, and the build failed when they were enabled. (otlp_grpc,
otlp_http, otlp_prometheus, testing).
3. Switch to gitsm:// protocol in SRC_URI, as some of the PACKAGECONFIG options
do use some of the submodules included in the main repository.
4. Add EXTRA_OECMAKE arguments: OTELCPP_VERSIONED_LIBS and BUILD_SHARED_LIBS are
required to generated versioned libraries, and avoid triggering the dev-elf qa check
with the PACKAGECONFIG options that generate a SO file.
PROTOBUF_PROTOC_EXECUTABLE is used by otlp_grpc and otlp_http PACKAGECONFIGs only,
however this long option makes PACKAGECONFIG very hard to read - so added here.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Gyorgy Sarvari
2025-01-24 20:42:36 +01:00
committed by Khem Raj
parent 1a6e5cb438
commit a0524d5250
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
DEPENDS = "nlohmann-json"
SRC_URI = "git://github.com/open-telemetry/opentelemetry-cpp.git;protocol=https;branch=main \
SRC_URI = "gitsm://github.com/open-telemetry/opentelemetry-cpp.git;protocol=https;branch=main \
file://0001-Fix-build-with-clang-19.patch"
SRCREV = "fa0a5200ddbe9ae6f487a228e658aedc102dab56"
@@ -17,13 +17,18 @@ inherit cmake pkgconfig lib_package
LDFLAGS:append:riscv32 = " -latomic"
PACKAGECONFIG ?= "opentelemety_install otlp_api"
PACKAGECONFIG[opentelemety_install]="-DOPENTELEMETRY_INSTALL=ON,-DOPENTELEMETRY_INSTALL=OFF"
PACKAGECONFIG[build_package]="-DBUILD_PACKAGE=ON,-DBUILD_PACKAGE=OFF"
PACKAGECONFIG[otlp_api]="-DWITH_OTLP_API=ON,-DWITH_OTLP_API=OFF"
PACKAGECONFIG[otlp_grpc]="-DWITH_OTLP_GRPC=ON,-DWITH_OTLP_GRPC=OFF"
PACKAGECONFIG[otlp_http]="-DWITH_OTLP_HTTP=ON,-DWITH_OTLP_HTTP=OFF"
PACKAGECONFIG[otlp_prometheus]="-DWITH_PROMETHEUS=ON,-DWITH_PROMETHEUS=OFF"
PACKAGECONFIG[benchmark]="-DWITH_BENCHMARK=ON,-DWITH_BENCHMARK=OFF"
PACKAGECONFIG[testing]="-DBUILD_TESTING=ON,-DBUILD_TESTING=OFF"
EXTRA_OECMAKE:append = " -DPROTOBUF_PROTOC_EXECUTABLE=${RECIPE_SYSROOT_NATIVE}${bindir}/protoc \
-DOTELCPP_VERSIONED_LIBS=ON \
-DBUILD_SHARED_LIBS=ON "
PACKAGECONFIG ?= "opentelemetry_install otlp_api"
PACKAGECONFIG[opentelemetry_install]="-DOPENTELEMETRY_INSTALL=ON, -DOPENTELEMETRY_INSTALL=OFF"
PACKAGECONFIG[otlp_api]="-DWITH_OTLP_API=ON, -DWITH_OTLP_API=OFF"
PACKAGECONFIG[otlp_grpc]="-DWITH_OTLP_GRPC=ON -DWITH_ABSEIL=ON, -DWITH_OTLP_GRPC=OFF, grpc grpc-native protobuf-native"
PACKAGECONFIG[otlp_http]="-DWITH_OTLP_HTTP=ON -DWITH_ABSEIL=ON, -DWITH_OTLP_HTTP=OFF, protobuf protobuf-native curl"
PACKAGECONFIG[otlp_prometheus]="-DWITH_PROMETHEUS=ON -DUSE_THIRDPARTY_LIBRARIES=OFF, \
-DWITH_PROMETHEUS=OFF, civetweb curl"
PACKAGECONFIG[benchmark]="-DWITH_BENCHMARK=ON, -DWITH_BENCHMARK=OFF"
PACKAGECONFIG[testing]="-DBUILD_TESTING=ON, -DBUILD_TESTING=OFF, gtest"