Code Monkey home page Code Monkey logo

tlo-cpp's Introduction

tlo-cpp

A C++ library.

Library Components

  • A unit testing framework
  • Implementations of a few dynamic programming algorithms:
    • Longest common subsequence length
    • Longest common subsequence distance
    • Levenshtein distance
    • Damerau-Levenshtein distance
  • Some utility functions on top of std::filesystem, std::string, and std::chrono
  • A class for parsing command-line arguments
  • Wrapper classes encapsulating SQLite 3 objects and functions

Build Requirements

  • CMake
  • C++17 development environment for which CMake can generate build files
  • SQLite 3

Clone, Build, and Test

Clone into tlo-cpp directory.

$ git clone --branch develop [email protected]:OOZZY/tlo-cpp.git

Build (out of source).

$ mkdir build
$ cd build
$ cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug ../tlo-cpp
$ make

Run tests with make.

$ make test

Run tests directly.

$ ./tlo-cpp-test

CMake Options

  • TLO_CPP_COLORED_DIAGNOSTICS
    • Tell the compiler to use colors in diagnostics (GNU/Clang only)
    • On by default
  • TLO_CPP_USE_LIBCPP
    • Use libc++ (Clang only)
    • Off by default
  • TLO_CPP_LINK_FS
    • Link to filesystem library of older GNU and Clang (GNU/Clang only)
    • Prior to LLVM 9, using std::filesystem required linker option -lc++fs
    • Prior to GCC 9, using std::filesystem required linker option -lstdc++fs
    • Off by default
  • TLO_CPP_SQLITE3_INCLUDE_DIRS and TLO_CPP_SQLITE3_LIBRARIES
    • If both are specified (non-empty strings), will search for SQLite 3 headers in the directories specified by TLO_CPP_SQLITE3_INCLUDE_DIRS and will link to the libraries specified by TLO_CPP_SQLITE3_LIBRARIES
    • Otherwise, find_package(SQLite3 REQUIRED) will be used instead
    • Empty strings by default
  • TLO_CPP_ENABLE_TESTS
    • Enable tests
    • On by default

tlo-cpp's People

Contributors

oozzy avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.