master branch |
Linux/OSX |
Windows |
dev branch |
Linux/OSX |
Windows |
Modern C++, header-only/compiled, custom console system library.
- 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.
- 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)
- C++17 capable compiler:
- Visual C++ 15 (Visual Studio 2017)
- Clang 5
- GCC 7
- CMake 3.10+
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)
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.
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)
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.
Current documentation available on the Wiki. (WIP)