- CMake
>= 3.16
- C++ Compiler
>= C++17
- and see Dockerfile section
- and see Dockerfile section
# retrieve third party modules
git submodule update --init --recursive
FROM ubuntu:22.04
RUN apt update -y && apt install -y git build-essential cmake ninja-build libboost-filesystem-dev libboost-system-dev libboost-container-dev libboost-thread-dev libboost-stacktrace-dev libgoogle-glog-dev libgflags-dev doxygen libtbb-dev libnuma-dev protobuf-compiler protobuf-c-compiler libprotobuf-dev libmsgpack-dev uuid-dev libicu-dev pkg-config flex bison libssl-dev
optional packages:
clang-tidy-14
This requires below tsurugidb modules to be installed.
- tateyama
- jogasaki
- ogawayama (when -DOGAWAYAMA=ON is specified in cmake)
- shirakami
- limestone
- takatori
- yugawara
- sharksfin
mkdir -p build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
available options:
-DCMAKE_INSTALL_PREFIX=<installation directory>
- change install location-DCMAKE_PREFIX_PATH=<installation directory>
- indicate prerequisite installation directory-DCMAKE_IGNORE_PATH="/usr/local/include;/usr/local/lib/"
- specify the libraries search paths to ignore. This is convenient if the environment has conflicting version installed on system default search paths. (e.g. gflags in /usr/local)-DSHARKSFIN_IMPLEMENTATION=<implementation name>
- switch sharksfin implementation. Available options arememory
andshirakami
(default:memory
)-DOGAWAYAMA=ON
- enable ogawayama bridge-DENABLE_JEMALLOC
- use jemalloc instead of defaultmalloc
- for debugging only
-DENABLE_SANITIZER=OFF
- disable sanitizers (requires-DCMAKE_BUILD_TYPE=Debug
)-DENABLE_UB_SANITIZER=ON
- enable undefined behavior sanitizer (requires-DENABLE_SANITIZER=ON
)-DENABLE_COVERAGE=ON
- enable code coverage analysis (requires-DCMAKE_BUILD_TYPE=Debug
)
cmake --build . --target install
Execute the test as below:
ctest -V
You can customize logging in the same way as sharksfin. See sharksfin README.md for more details.
GLOG_minloglevel=0 tgctl start