#!/usr/bin/env bash
+set -o pipefail -o errtrace -o nounset -o errexit
# Experimental script, please consult with dmarion@me.com before
# submitting any changes
install_dir=/usr/local
build_type=release
prefix_path=/opt/vpp/external/$(uname -m)/
+src_dir="$(dirname "$(readlink -f "$0")")"
help()
{
--help, -h This help
--build-dir, -b Build directory
--install-dir, -i Install directory
- --type, -t Build type (release, debug, ... )
+ --build-type, -t Build type (release, debug, ...)
--wipe, -w Wipe whole repo (except startup.* files)
__EOF__
}
cmake \
-G Ninja \
- -S src \
+ -S ${src_dir}/src \
-B ${build_dir} \
-DCMAKE_PREFIX_PATH=${prefix_path} \
-DCMAKE_INSTALL_PREFIX=${install_dir} \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \
-DCMAKE_BUILD_TYPE:STRING=${build_type}
cat << __EOF__
Useful build commands:
- ninja Build VPP
- ninja menu Start build configuration TUI
- ninja compdb Generate compile_commands.json
- ninja run Runs VPP using startup.conf in the build directory
- ninja debug Runs VPP inside GDB using startup.conf in the build directory
- ninja pkg-deb Create .deb packages
- ninja install Install VPP to $install_dir
+ ninja Build VPP
+ ninja set-build-type-* Change build type to <debug|release|gcov|...>
+ ninja config Start build configuration TUI
+ ninja run Runs VPP using startup.conf in the build directory
+ ninja debug Runs VPP inside GDB using startup.conf in the build directory
+ ninja pkg-deb Create .deb packages
+ ninja install Install VPP to $install_dir
__EOF__