mirror of
https://github.com/google/brotli.git
synced 2024-12-01 07:30:04 +00:00
67f059eaf5
* build: add cross-compilation support to make Set CROSS_COMPILE when running make to use the selected cross compilation toolchain, such as arm-linux-gnueabihf, or aarch64-linux-gnu. Testing requires the presence of qemu - 'qemu-$(ARCH)' will be executed, where ARCH is the first part of the toolchain triplet. * build: add cross-compilation support to cmake If C_COMPILER/CXX_COMPILER/CC/CXX are found to have cross-compilation triplets in front of the compiler, then qemu will be used to execute the tests. * CI: add arm-linux-gnueabihf-gcc builder to Travis The version of qemu available in Ubuntu trusty (as provided by Travis) appears to have a bug in qemu-aarch64, which leads to the compatibility tests failing on some inputs, erroneously rejecting the input as corrupt. Once Travis supports xenial, we could add an aarch64-gnu-linux-gcc builder as well. * CI: propagate cmake errors out of .travis.sh Seems like even if cmake fails, the error isn't picked up by Travis.
81 lines
2.1 KiB
Bash
Executable File
81 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
case "$1" in
|
|
"before_install")
|
|
;;
|
|
"install")
|
|
case "${TRAVIS_OS_NAME}" in
|
|
"osx")
|
|
brew update
|
|
brew install binutils
|
|
|
|
case "${CC}" in
|
|
"gcc-"*)
|
|
which ${CC} || brew install $(echo "${CC}" | sed 's/\-/@/') || brew link --overwrite $(echo "${CC}" | sed 's/\-/@/')
|
|
;;
|
|
esac
|
|
|
|
case "${BUILD_SYSTEM}" in
|
|
"bazel")
|
|
brew install bazel
|
|
;;
|
|
esac
|
|
;;
|
|
"linux")
|
|
case "${CC}" in
|
|
"pgcc")
|
|
wget 'https://raw.githubusercontent.com/nemequ/pgi-travis/de6212d94fd0e7d07a6ef730c23548c337c436a7/install-pgi.sh'
|
|
echo 'acd3ef995ad93cfb87d26f65147395dcbedd4c3c844ee6ec39616f1a347c8df5 install-pgi.sh' | sha256sum -c --strict || exit 1
|
|
/bin/sh install-pgi.sh
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
;;
|
|
"script")
|
|
case "${BUILD_SYSTEM}" in
|
|
"cmake")
|
|
mkdir builddir && cd builddir
|
|
CMAKE_FLAGS=
|
|
if [ "${CROSS_COMPILE}" = "yes" ]; then
|
|
CMAKE_FLAGS="-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_RC_COMPILER=${RC_COMPILER}"
|
|
fi
|
|
cmake ${CMAKE_FLAGS} -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DENABLE_SANITIZER="${SANITIZER}" -DCMAKE_C_FLAGS="${CFLAGS}" .. || exit 1
|
|
make VERBOSE=1 || exit 1
|
|
ctest -V || exit 1
|
|
;;
|
|
"python")
|
|
python setup.py test
|
|
;;
|
|
"maven")
|
|
cd java/org/brotli
|
|
mvn install && cd integration && mvn verify
|
|
;;
|
|
"autotools")
|
|
./bootstrap && ./configure && make
|
|
;;
|
|
"fuzz")
|
|
./c/fuzz/test_fuzzer.sh
|
|
;;
|
|
"bazel")
|
|
bazel build -c opt ...:all &&
|
|
cd go && bazel test -c opt ...:all && cd .. &&
|
|
cd java && bazel test -c opt ...:all && cd .. &&
|
|
cd js && bazel test -c opt ...:all && cd .. &&
|
|
cd research && bazel build -c opt ...:all && cd ..
|
|
;;
|
|
esac
|
|
;;
|
|
"after_success")
|
|
;;
|
|
"before_deploy")
|
|
case "${BUILD_SYSTEM}" in
|
|
"bazel")
|
|
export RELEASE_DATE=`date +%Y-%m-%d`
|
|
perl -p -i -e 's/\$\{([^}]+)\}/defined $ENV{$1} ? $ENV{$1} : $&/eg' scripts/.bintray.json
|
|
zip -j9 brotli.zip bazel-bin/libbrotli*.a bazel-bin/libbrotli*.so bazel-bin/brotli
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|