| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/usr/bin/env bash
- PREVIOUS_VERSION=$(git describe --tags --abbrev=0 master)
- BUILD_DIR=_build_for_abi_compatibility_check
- # Make the build directory
- rm -rf $BUILD_DIR
- mkdir -p $BUILD_DIR/new
- mkdir -p $BUILD_DIR/old
- cd $BUILD_DIR
- # Build the current commit
- cd new
- cmake \
- -DCMAKE_BUILD_TYPE=Debug \
- -DCMAKE_CXX_FLAGS="-g -Og" \
- -DBUILD_SHARED_LIBS=ON \
- -DHTTPLIB_COMPILE=ON \
- -DCMAKE_INSTALL_PREFIX=./out \
- ../../.. > /dev/null
- cmake --build . --target install > /dev/null
- cmake --build . --target clean > /dev/null
- cd ..
- # Build the nearest vesion
- cd old
- cmake \
- -DCMAKE_BUILD_TYPE=Debug \
- -DCMAKE_CXX_FLAGS="-g -Og" \
- -DBUILD_SHARED_LIBS=ON \
- -DHTTPLIB_COMPILE=ON \
- -DCMAKE_INSTALL_PREFIX=./out \
- ../../.. > /dev/null
- git checkout -q "${PREVIOUS_VERSION}"
- cmake --build . --target install > /dev/null
- cmake --build . --target clean > /dev/null
- cd ..
- # Checkout the original commit
- git checkout -q master
- # ABI compatibility check
- if [[ "$OSTYPE" == "linux-gnu"* ]]; then
- ../check-abi-compatibility.sh ./old/out/lib/libcpp-httplib.so ./new/out/lib/libcpp-httplib.so
- exit $?
- elif [[ "$OSTYPE" == "darwin"* ]]; then
- ../check-abi-compatibility.sh ./old/out/lib/libcpp-httplib.dylib ./new/out/lib/libcpp-httplib.dylib
- exit $?
- else
- echo "Unknown OS..."
- exit 1
- fi
|