Apache Celix is an implementation of the OSGi specification adapted for C (C11) and C++ (C++14). It enables a dynamic, modular software architecture using bundles, services, and components.
Key Concepts
Assume no internet connection. Request confirmation before installing system packages.
# Initial configure build: cmake \ -DCMAKE_FETCHCONTENT_FULLY_DISCONNECTED=ON \ -DENABLE_TESTING=ON \ -DRSA_JSON_RPC=ON \ -DRSA_REMOTE_SERVICE_ADMIN_SHM_V2=ON \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -G Ninja \ -S . -B build # Initial configure build, if a download is needed: cmake \ -DENABLE_TESTING=ON \ -DRSA_JSON_RPC=ON \ -DRSA_REMOTE_SERVICE_ADMIN_SHM_V2=ON \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -G Ninja \ -S . -B build # Compile: cmake --build build --parallel
After building, run the tests for the components you changed. Run ctest from the appropriate build subdirectory when possible. For example, to test the shell bundles:
Scoped:
ctest --output-on-failure --test-dir build/<sub-dir>
Full Suite:
ctest --output-on-failure --test-dir build
With exception of documentation changes, always build and run the test before submitting changes.
.clang-format configuration.