Iuri Matias 702d6dac79 add ci workflow to run liblogos tests
- also revert for now asserts changes on proxy api

add ci workflow to run liblogos tests

ci fix

revert for now asserts changes on proxy api

ci fix

ci fix

ci fix

ci fix

ci fix
2026-01-22 17:57:27 -05:00
2026-01-06 12:58:28 -05:00
2026-01-21 09:30:09 -05:00
2026-01-22 17:57:27 -05:00
2026-01-22 17:57:27 -05:00
2026-01-22 16:00:39 -05:00
2026-01-21 16:54:32 -05:00
2026-01-21 16:54:32 -05:00
2026-01-21 16:54:32 -05:00

logos-liblogos

How to Build

The project includes a Nix flake for reproducible builds with a modular structure:

Build Complete Library (Binaries + Libraries + Headers)

# Build everything (default)
nix build

# Or explicitly
nix build '.#logos-liblogos'
nix build '.#default'

The result will include:

  • /bin/ - Core binaries (logoscore, logos_host)
  • /lib/ - Core libraries (liblogos_core, liblogoscore, liblogos_host)
  • /include/ - Headers (interface.h)

Build Individual Components

# Build only the binaries (outputs to /bin)
nix build '.#logos-liblogos-bin'

# Build only the libraries (outputs to /lib)
nix build '.#logos-liblogos-lib'

# Build only the headers (outputs to /include)
nix build '.#logos-liblogos-include'

# Build and run tests
nix build '.#logos-liblogos-tests'

Running Tests

Using Nix (Recommended):

# Build and run tests (tests run automatically during build)
nix build '.#logos-liblogos-tests'

# To run tests manually after building:
./result/bin/logos_core_tests

# Run specific tests
./result/bin/logos_core_tests --gtest_filter=AppLifecycleTest.*

# List all available tests
./result/bin/logos_core_tests --gtest_list_tests

Manual Build:

# From the build directory
cd build-local
ninja logos_core_tests

# Run tests
./bin/logos_core_tests

# Or use CTest
ctest --output-on-failure

Development Shell

# Enter development shell with all dependencies
nix develop

Note: In zsh, you need to quote targets with # to prevent glob expansion.

If you don't have flakes enabled globally, add experimental flags:

nix build '.#logos-liblogos' --extra-experimental-features 'nix-command flakes'

The compiled artifacts can be found at result/

Modular Architecture

The nix build system is organized into modular files in the /nix directory:

  • nix/default.nix - Common configuration (dependencies, flags, metadata)
  • nix/build.nix - Shared build that compiles everything once
  • nix/bin.nix - Extracts binaries (includes libraries for runtime linking)
  • nix/lib.nix - Extracts libraries only
  • nix/include.nix - Header installation
  • nix/tests.nix - Test suite build and execution

Note: The logos-liblogos-bin package includes both binaries and their required libraries to ensure proper runtime linking. This is necessary because the binaries dynamically link against the logos libraries.

Local Development

To use a local logos-cpp-sdk repo:

nix build --override-input logos-cpp-sdk path:../logos-cpp-sdk

Manual Build

First, initialize the git submodules:

git submodule update --init --recursive

Then build:

./scripts/compile.sh

The built libraries will be available in build/lib/ and binaries in build/bin/.

Requirements

Build Tools

  • CMake (3.14 or later)
  • Ninja build system
  • pkg-config

Dependencies

  • Qt6 (qtbase) or Qt5 (Core, RemoteObjects)
  • Qt6 Remote Objects (qtremoteobjects)
  • logos-cpp-sdk

Supported Platforms

  • macOS (aarch64-darwin, x86_64-darwin)
  • Linux (aarch64-linux, x86_64-linux)
S
Description
No description provided
Readme
5.3 MiB
Languages
C++ 77.7%
Nix 11%
CMake 7.8%
C 2.3%
Shell 1.2%