Skip to content

trflynn89/libfly

Repository files navigation

libfly

Azure DevOps Codecov Codacy

libfly is a C++20 utility library for Linux, macOS, and Windows. It primarily serves as a playground for learning new C++ standards and exploring interests.

Features

Building

After cloning libfly, external dependencies should be fetched as well.

git submodule update --init

Of those dependencies, only flymake is required (on Linux and macOS) to compile the libfly library. Catch2 is required only for building unit tests. All other dependencies are for benchmarking purposes, and not used by libfly itself.

Linux and macOS

On Linux and macOS, libfly is compiled using the flymake build system, which is a GNU Makefile system. To build all libfly targets with the default configuration, just run make.

The following individual Make targets are defined:

  • libfly - Compiles the libfly library to static and shared library files.
  • libfly_unit_tests - Compiles libfly unit tests.
  • libfly_benchmarks - Compiles libfly performance benchmarks.

See the flymake README for other make goals and build configurations.

Windows

On Windows, libfly is compiled with Visual Studio. A solution file is provided with the following projects:

Directory structure

  • fly - Contains the primary source and header files for libfly.
  • build - Contains build output, platform-specific build files, and the CI configuration.
  • test - Contains the libfly unit tests.
  • docs - Contains generated source code documentation.
  • bench - Contains performance benchmarks of various libfly components.
  • extern - Contains all third-party projects used by libfly.