1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #!/usr/bin/env bash
- # Copyright 2007 - 2021, Alan Antonuk and the rabbitmq-c contributors.
- # SPDX-License-Identifier: mit
- build_cmake() {
- sudo apt install -y xmlto
- mkdir $PWD/_build && cd $PWD/_build
- cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DBUILD_TOOLS_DOCS=ON -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Wno-implicit-fallthrough -Werror"
- cmake --build . --target install
- ctest -V .
- }
- build_framing() {
- sudo apt install -y clang-format
- ./regenerate_framing.sh
- mkdir $PWD/_build && cd $PWD/_build
- cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Wno-implicit-fallthrough -Werror"
- cmake --build . --target install
- ctest -V .
- }
- build_macos() {
- mkdir $PWD/_build && cd $PWD/_build
- cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror" \
- -DOPENSSL_ROOT_DIR="/usr/local/opt/openssl@1.1"
- cmake --build . --target install
- ctest -V .
- }
- build_format() {
- sudo apt-get install -y clang-format
- ./travis/run-clang-format/run-clang-format.py \
- --clang-format-executable="${PWD}/travis/clang-format.sh" \
- --recursive examples librabbitmq tests tools
- }
- build_coverage() {
- mkdir $PWD/_build && cd $PWD/_build
- cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DCMAKE_BUILD_TYPE=Coverage -DCMAKE_INSTALL_PREFIX=$PWD/../_install \
- -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror -fprofile-arcs -ftest-coverage"
- cmake --build . --target install
- ctest -V .
-
- pip install --user cpp-coveralls
- coveralls --exclude tests --build-root . --root .. --gcov-options '\-lp'
- }
- build_asan() {
- mkdir $PWD/_build && cd $PWD/_build
- cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/../_install \
- -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror -fsanitize=address,undefined -O1"
- cmake --build . --target install
- ctest -V .
- }
- build_tsan() {
- mkdir $PWD/_build && cd $PWD/_build
- cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/../_install \
- -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror -fsanitize=thread,undefined -O1"
- cmake --build . --target install
- ctest -V .
- }
- build_scan-build() {
- sudo apt install -y clang-tools
- mkdir $PWD/_build && cd $PWD/_build
- scan-build cmake .. -GNinja -DBUILD_EXAMPLES=ON -DBUILD_TOOLS=ON -DCMAKE_BUILD_TYPE=Debug \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_INSTALL_PREFIX=$PWD/../_install \
- -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror"
- scan-build ninja install
- }
- if [ "$#" -ne 1 ]; then
- echo "Usage: $0 {cmake|framing|macos|format|coverage|asan|tsan|scan-build}"
- exit 1
- fi
- set -e # exit on error.
- set -x # echo commands.
- eval "build_$1"
|