Simple Input Handler Displayer
Aimed to be a simple C++ library with some python and/or LUA bindings that gets, parse and displays data.
Used by core application.
Manages compilation rules with python.
apt install scons
or
pip install scons
If conan is installed from python-pip, don't forget to add to ~/.bashrc:
export PATH=$PATH:$HOME/.local/bin
To find binary from python-pip binaries folder.
Not needed if dependencies are directly installed on the building system.
Needed for Windows cross building to get DLLs or Emscripten building to get static libraries.
make dep
make dep mod COMMA_SEPARATED_MODULES
Will install vcpkg inside the repository
pacman -S --needed git mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-gcc
g++ 7.5.0
apt install g++
clang++ 6.0.0
apt install clang libc++-dev libc++abi-dev llvm
g++-mingw 7.3-posix
apt install g++-mingw-w64-x86-64
# configure mingw32 to posix
update-alternatives --config x86_64-w64-mingw32-g++
emscripten 3.0.0
apt install emscripten
All dependencies are listed in app.py file, only few are needed for each modules
Get dependencies from conan.io center if not installed on your system
# to get all dependencies for every modules
make dep
# to be able to run unit tests
make dep test=1
# to get dependencies for single/multiple module.s
make dep mod COMMA_SEPARATED_MODULES
# to get windows dll dependencies
make dep platform=win
Get system external libraries list
scons pkgdep=[apt|pacman] test=[0|1] modules=COMMA_SEPARATED_MODULES
To build binaries and compile shared libraries with scons
make
To compile module.s
make mod COMMA_SEPARATED_MODULES
Add to command line for:
- static libraries: "static=1"
- address sanatizer: "asan=1"
- no debug symbols: "mode=release"
- use clang compiler: "compiler=clang"
- use mingw compiler: "compiler=mingw"
- use emscripten compiler: "compiler=em" (automatically builds with static libraries)
python-3.6.7
It is recommended to install it on your system with a packet manager: python3-dev
Add to your command line "py=1"
make py=1
# or
make mod core,py
/!\ not available with mingw windows cross compilation /!\
lua-5.3.5
It is recommended to install it on your system with a packet manager: lua5.3-dev
Add to your command line "lua=1"
make lua=1
# or
make mod core,lua
Create demo for each for the compiled module
make dep mod util demo=1
make mod util demo=1
To compile and run tests
# Run all tests
make test
# Run some modules tests
make test COMMA_SEPARATED_MODULES
List tests
# For all modules
make test ls
# For some modules
make test COMMA_SEPARATED_MODULES ls
Filter tests
make test COMMA_SEPARATED_MODULES FILTER
To create pacman distribution PKGBUILD file
make dist_pacman
# for a single/multiple module.s
make dist_pacman mod COMMA_SEPARATED_MODULES
To create apt distribution .deb file
make dist_apt
# for a single/multiple module.s
make dist_apt mod COMMA_SEPARATED_MODULES
To create a tar.gz with current build
make dist_tar
# for a single/multiple module.s
make dist_tar mod COMMA_SEPARATED_MODULES
To install build into your system /usr/local
make install
# to change default install directory from /usr/local/lib -> pkg/usr/local/lib ...
make install INSTALL_DESTDIR=pkg
# to change default /usr/local to /usr
make install INSTALL_PREFIX=/usr
This will create into Makefile's folder a '.installed' containing every file installed
This file is used by 'uninstall' makefile rule to remove what has been installed.
make uninstall