| #!/bin/bash |
| set -e |
| |
| echo "\n=== Building ===" |
| export OPENSSL_ROOT_DIR="/usr/local/opt/openssl" |
| export PATH="/Users/travis/Library/Python/2.7/bin:$PATH" |
| |
| # OSX may have different hostnames between processes, which causes multicast unit test to fail. |
| # Hardcode the hostname here |
| # Note: do not use the `hostname` addon from travis: |
| # addons: |
| # hostname: travis-osx |
| # |
| # Travis support says: |
| # the `hostname` command is actually a super ephemeral way to change it. There’s a different way: |
| # `sudo scutil --set HostName <new host name>` which is more permanent and potentially more resilient |
| sudo scutil --set HostName travis-osx |
| |
| echo "Full Namespace 0 Generation" && echo -en 'travis_fold:start:script.build.ns0\\r' |
| mkdir -p build |
| cd build |
| cmake \ |
| -DCMAKE_BUILD_TYPE=Debug \ |
| -DUA_BUILD_EXAMPLES=ON \ |
| -DUA_NAMESPACE_ZERO=FULL .. |
| make -j |
| if [ $? -ne 0 ] ; then exit 1 ; fi |
| cd .. && rm -rf build |
| echo -en 'travis_fold:end:script.build.ns0\\r' |
| |
| echo "Compile release build for OS X" && echo -en 'travis_fold:start:script.build.osx\\r' |
| mkdir -p build && cd build |
| cmake \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| -DCMAKE_INSTALL_PREFIX=${TRAVIS_BUILD_DIR}/open62541-osx \ |
| -DUA_BUILD_EXAMPLES=ON \ |
| -DUA_ENABLE_AMALGAMATION=OFF .. |
| make -j |
| if [ $? -ne 0 ] ; then exit 1 ; fi |
| make install |
| if [ $? -ne 0 ] ; then exit 1 ; fi |
| cd .. |
| tar -pczf open62541-osx.tar.gz LICENSE AUTHORS README.md ${TRAVIS_BUILD_DIR}/open62541-osx/* |
| rm -rf build |
| echo -en 'travis_fold:end:script.build.osx\\r' |
| |
| echo "Compile multithreaded version" && echo -en 'travis_fold:start:script.build.multithread\\r' |
| mkdir -p build && cd build |
| cmake \ |
| -DUA_BUILD_EXAMPLES=ON \ |
| -DUA_MULTITHREADING=200 .. |
| make -j |
| if [ $? -ne 0 ] ; then exit 1 ; fi |
| cd .. && rm -rf build |
| echo -en 'travis_fold:end:script.build.multithread\\r' |
| |
| echo "Debug build and unit tests with valgrind" && echo -en 'travis_fold:start:script.build.unit_test\\r' |
| mkdir -p build && cd build |
| cmake \ |
| -DCHECK_PREFIX=/usr/local/Cellar/check/0.11.0 \ |
| -DCMAKE_BUILD_TYPE=Debug \ |
| -DUA_BUILD_EXAMPLES=ON \ |
| -DUA_BUILD_UNIT_TESTS=ON \ |
| -DUA_ENABLE_COVERAGE=OFF \ |
| -DUA_ENABLE_DISCOVERY=ON \ |
| -DUA_ENABLE_DISCOVERY_MULTICAST=ON \ |
| -DUA_ENABLE_ENCRYPTION=ON \ |
| -DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF .. |
| make -j && make test ARGS="-V" |
| if [ $? -ne 0 ] ; then exit 1 ; fi |
| cd .. && rm -rf build |
| echo -en 'travis_fold:end:script.build.unit_test\\r' |