Simlib is a C++ utility library for Linux originally created for the Sim project.
Some functionality documentation
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.
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
# if you want to install to default prefix
meson install -C release-build
# specifying other install directory
DESTDIR=other/install/dir/ 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