GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - eclipse-uprotocol/up-cpp: uProtocol Language Specific Library for C++

BranchesTags
Open more actions menu

Latest commit

 

History

317 Commits
317 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
docs/design/utils
docs/design/utils
 
 
include/up-cpp
include/up-cpp
 
 
lint
lint
 
 
src
src
 
 
test
test
 
 
.clang-format
.clang-format
 
 
.clang-tidy
.clang-tidy
 
 
.gitignore
.gitignore
 
 
CMakeLists.txt
CMakeLists.txt
 
 
CONTRIBUTING.adoc
CONTRIBUTING.adoc
 
 
LICENSE
LICENSE
 
 
NOTICE.adoc
NOTICE.adoc
 
 
README.md
README.md
 
 
conanfile.py
conanfile.py
 
 
coverage.sh
coverage.sh
 
 

Repository files navigation

uProtocol C++ Interface Library (up-cpp)

CI

Welcome!

This library provides the primary interface to uProtocol for uEntity applications. The primary point of interaction for most applications will be the layer 2 "communications" objects.

In addition to up-cpp, a uEntity will also need at least on transport implementation, such as up-transport-zenoh-cpp.

IMPORTANT NOTE: This project is under active development

Getting Started

Requirements:

  • Compiler: GCC/G++ 11 or Clang 13
  • Conan : 1.59 or latest 2.x

Conan packages

Using the recipes found in up-conan-recipes, build these Conan packages:

  1. up-core-api: conan create --version 1.6.0-alpha4 --build=missing up-core-api/release

NOTE: all conan commands in this document use Conan 2.x syntax. Please adjust accordingly when using Conan 1.x.

How to Use the Library

To add up-cpp to your conan build dependencies, place following in your conanfile.txt:

[requires]
up-cpp/[~1.0]

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout

NOTE: If using conan version 1.59 Ensure that the conan profile is configured to use ABI 11 (libstdc++11: New ABI) standards according to the Conan documentation for managing gcc ABIs.

Building locally

The following steps are only required for developers to locally build and test up-cpp, If you are making a project that uses up-cpp, follow the steps in the How to Use the Library section above.

With Conan for dependencies

From the root of this repo, run:

conan install --build=missing .
cmake --preset conan-release
cd build/Release
cmake --build . -- -j

Once the build completes, tests can be run with ctest.

Debug builds can be generated by changing those steps to:

conan install --build=missing --settings=build_type=Debug .
cmake --preset conan-debug
cd build/Debug
cmake --build . -- -j

With Conan for QNX

Before building up-cpp we need to build all dependencies from up-conan-recipes:

Please follow instruction for QNX build in file up-conan-recipes/README.md

Pre-requisite:

  • Build and install all QNX build dependencies from up-conan-recipes
    • https://github.com/eclipse-uprotocol/up-conan-recipes
# setup path to up-conan-recipes
export QNX_CONAN_ROOT=<path_to_up-conan-recipes>

# Install conan toolchain for QNX target
#
# <profile-name>: nto-7.1-aarch64-le, nto-7.1-x86_64, nto-8.0-aarch64-le, nto-8.0-x86_64
# <version-number>: 1.0.0-rc0, 1.0.0, 1.0.1-rc1, 1.0.1
#
conan install -pr:h=$QNX_CONAN_ROOT/tools/profiles/<profile-name> --version=<version-number> --build=missing .

cmake --preset conan-release

cmake --build build/Release -- -j

# all tests you can find under build/Release/bin/
# copy test binaries to your QNX target

Generate UT Coverage

To get code coverage, perform the steps above, but replace cmake --preset... with

cd build/Release
cmake ../../ -DCMAKE_TOOLCHAIN_FILE=generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Coverage

Once the tests complete, the Unit Test Coverage report can be generated from the base up-cpp folder with: ./Coverage.sh

./coverage.sh

With dependencies installed as system libraries

TODO Verify steps for pure cmake build without Conan.

Creating the Conan package

See: up-conan-recipes

Show your support

Give a ⭐️ if this project helped you!

About

uProtocol Language Specific Library for C++

Topics

corecppuprotocol

Resources

Readme
Apache-2.0 license

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

29 stars

Watchers

9 watching

Forks

32 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.