Skip to content

kswiecicki/miniasync

 
 

Repository files navigation

miniasync: Mini Asynchronous Library

GHA build status Coverage Status Language grade: C/C++ Coverity Scan Build Status

The Mini Library for Asynchronous Programming in C is a C low-level concurrency library for asynchronous functions. For more information, see pmem.io.

Building

Requirements:

  • C compiler
  • cmake >= 3.3
  • pkg_config

First, you have to create a build directory. From there you have to prepare the compilation using CMake. The final build step is just a make command.

$ mkdir build && cd build
$ cmake ..
$ make -j

CMake standard options

List of options provided by CMake:

Name Description Values Default
BUILD_EXAMPLES Build the examples ON/OFF ON
BUILD_TESTS Build the tests ON/OFF ON
COVERAGE Run coverage test ON/OFF OFF
DEVELOPER_MODE Enable developer checks ON/OFF OFF
CHECK_CSTYLE Check code style of C sources ON/OFF OFF
TRACE_TESTS More verbose test outputs ON/OFF OFF
USE_ASAN Enable AddressSanitizer ON/OFF OFF
USE_UBSAN Enable UndefinedBehaviorSanitizer ON/OFF OFF
TESTS_USE_VALGRIND Enable tests with valgrind ON/OFF ON
TEST_DIR Working directory for tests dir path ./build/tests
CMAKE_BUILD_TYPE Choose the type of build None/Debug/Release/RelWithDebInfo Debug
COMPILE_DML Compile DML implementation of miniasync ON/OFF OFF

Running

The miniasync library can be found in the build/src directory. You can also run the examples from the build/examples directory.

Testing

After completing the building step, you can run tests by invoking: make test -j or ctest.

To get more verbose output on failure, you can invoke: ctest --output-on-failure.

Tests using Valgrind are switched on by default. To switch them off use: cmake -DTESTS_USE_VALGRIND=OFF ...

The option necessary to run tests BUILD_TESTS is set to ON by default.

Building packages

In order to build 'rpm' or 'deb' packages you should issue the following commands:

$ mkdir build && cd build
$ cmake .. -DCPACK_GENERATOR="$GEN" -DCMAKE_INSTALL_PREFIX=/usr
$ make package

where $GEN is a type of package generator: RPM or DEB.

CMAKE_INSTALL_PREFIX must be set to a destination where packages will be installed.

Contact Us

For more information on this library, contact Piotr Balcer ([email protected]), Google group.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 83.4%
  • Shell 5.2%
  • CMake 4.2%
  • Perl 4.1%
  • C++ 3.0%
  • Roff 0.1%