
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
- [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.