Skip to content

rmxbalanque/csys

Repository files navigation

CSYS

master branch Linux/OSX Windows
dev branch Linux/OSX Windows

MIT license Language Standard

Modern C++, header-only/compiled, custom console system library.

Features

  • Full and partial tab autocomplete with suggestions.
  • Register variables to console system for easy modification.
  • Command history support.
  • Simple command scripts support.
  • Custom data types console logging support. (overload << operator)
  • Custom functions with arbitrary arguments registration support.
  • Header only or compiled.
  • No external dependencies.

Platforms

  • The following platforms are supported:
    • Windows: Tested on Windows 10 Professional 64-bit. (Static/Header-only)
    • Linux: Tested on Ubuntu 18.04.4 LTS (Static/Shared/Header-only)

Requirements:

  • C++17 capable compiler:
    • Visual C++ 15 (Visual Studio 2017)
    • Clang 5
    • GCC 7
  • CMake 3.10+

Integration

If you wish to use the csys library without CMake you can copy the source folder and proceed to build with C++17 capable compiler. (Header only version)

CMake

Targets:

  • Header-only: Use the csys::csys_header_only interface library target.
  • Static/Shared: Use the csys::csys library target together with the -DCSYS_BUILD_SHARED=ON/OFF cmake variable.

External

To use this library from a CMake project, you can locate it by using the find_package() command and use the imported targets defined above.

# CMakeLists.txt

find_package(csys 1.0.0 REQUIRED)
...
add_library(your_library ...)
...
target_link_libraries(your_library PRIVATE csys::csys)

Embedded

To embed the library into an existing CMake project, clone source and place it in a subdirectory and call add_subdirectory() in your CMakeLists.txt.

# CMakeLists.txt

# By adding the subdirectory the csys::csys and csys::csys_header_only targets will be defined. 
# Note that the csys::csys target will be a static library by default.
add_subdirectory(csys)
...
add_library(your_library ...)
...
target_link_libraries(your_library PRIVATE csys::csys)

See example CMakeLists.txt on how to use.

Documentation

Current documentation available on the Wiki. (WIP)

About

Cross-platform C++ Custom Console Library

Topics

Resources

License

Stars

Watchers

Forks

Languages