Skip to content

y-scope/clp-ffi-java

Repository files navigation

clp-ffi-java is a library to encode log messages with CLP, and work with the encoded messages using a foreign function interface (FFI).

Requirements

  • A C++ compiler that supports C++-17
  • CMake 3.5.1 or higher
  • Task

Setup

  • Initialize git submodules
    git submodule update --init --recursive
    • You should run this command any time you update this repo's submodules.

Common build commands

Build and test:

task
# or task package-and-test

Build without testing:

task package

Build without any extras:

task package-basic

Generate the JNI headers:

task jni-headers

Build and package the native library:

task native-lib

Testing

Run all tests:

task test

Run unit tests:

task unit-tests

Run integration tests:

task integration-tests

Linting

Before submitting a PR, ensure you've run our linting tools and either fixed any violations or suppressed the warning. If you can't run the linting workflows locally, you can enable and run the lint workflow in your fork.

Requirements

We currently support running our linting tools on Linux and macOS. If you're developing on another OS, you can submit a feature request, or use our lint workflow in your fork.

To run the linting tools, besides commonly installed tools like tar, you'll need:

  • md5sum
  • Python 3.8 or newer
  • python3-venv

Running the linters

task lint