Console++ 0.1.1
A C++ library for interacting with Consoles streams
Loading...
Searching...
No Matches
Console++

Documentation License GitHub Releases Linux Build status Codacy Badge

Console++ is a small framework for interacting with the console on a character-at-a-time basis. Used together with Terminal++ and Munin, this library can form the foundation of any graphical terminal application.

Requirements

  • C++20 compiler
  • CMake 3.16+
  • Boost 1.69+ (required)
  • Google Test (for tests only)

Build And Install (From Source)

git clone https://github.com/KazDragon/consolepp.git
cd consolepp
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$HOME/.local"
cmake --build build --config Release
cmake --install build --config Release

Dependency Resolution With vcpkg

Console++ can resolve dependencies automatically through vcpkg:

cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"

When using manifest mode (vcpkg.json in this repository), configure will trigger dependency installation automatically.

Consume From CMake (Installed Package)

cmake_minimum_required(VERSION 3.16)
project(my_app LANGUAGES CXX)
find_package(consolepp CONFIG REQUIRED)
add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE KazDragon::consolepp)

If installed to a non-system prefix:

cmake -S . -B build -DCMAKE_PREFIX_PATH="$HOME/.local"

Features / Roadmap / Progress

  1. [x] Basic console handling
    • [x] Reading/writing from/to the console in character mode
    • [x] Queries and callbacks for console size

Status

Console++ is automatically testing with GNU g++ 7.5.