Sip is a tool for preparing and managing Sim problem packages
You will need meson
build system to be installed (on most platforms it is in the meson package).
You need a C++ compiler with C++17 support. Meson will point out missing dependencies.
Here are instructions how to satisfy dependencies on some systems:
sudo apt-get install meson g++ libseccomp-dev libzip-dev libcap-dev
sudo pacman -S meson gcc libseccomp libzip libcap
First of all clone the repository and all its submodules:
git clone https://github.com/varqox/sim-project && cd sim-project/subprojects/sip/
Then setup build directory:
meson setup release-build/ -Dbuildtype=release --prefix=/usr
And build:
ninja -C release-build/ base
The above command creates a dynamic executable release-build/sip
.
Finally, check if everything is working by running tests:
ninja -C release-build/ test
Installing is done via:
sudo meson install -C release-build
Now you can use sip command:
sip
For more information about how to use it and what it can do type:
sip help
Just type:
git pull --rebase --autostash
git submodule update --init --recursive
meson -C release-build base
sudo meson install -C release-build
meson setup release-build/ -Dbuildtype=release -Ddefault_library=both
ninja -C release-build/ base
meson setup build/ -Dc_args=-DDEBUG -Dcpp_args='-DDEBUG -D_GLIBCXX_DEBUG' -Db_sanitize=undefined -Db_lundef=false
ninja -C build/ base
Static build is useful if you want to build executables linked statically.
meson setup static-build/ -Ddefault_library=static -Dstatic=true
ninja -C static-build/ base
Run after building:
# we will use release-build build directory, if you use other just change all release-build below
meson configure release-build --prefix=/usr
sudo meson install -C release-build/
ninja -C build/ test # or other build directory
To format all sources (clang-format is required):
ninja -C build format
To lint all sources:
ninja -C build tidy
or
./tidy
To lint specified sources:
./tidy path/to/source.cc other/source.h
ninja -C build scan-build