| #!/bin/bash |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| |
| merge_paths() { |
| # Merge paths, remove duplicates (keep first instance) |
| path=$(echo $* | sed 's/:/ /'g) # Split with spaces. |
| newpath="" |
| for d in $path; do # Remove duplicates |
| { echo $newpath | grep -q "\(:\|^\)$d\(:\|$\)"; } || newpath="$newpath:$d" |
| done |
| echo $newpath | sed 's/^://' # Remove leading : |
| } |
| |
| PROTON_HOME=@CMAKE_SOURCE_DIR@ |
| PROTON_BUILD=@CMAKE_BINARY_DIR@ |
| |
| PROTON_BINDINGS=$PROTON_BUILD/proton-c/bindings |
| PROTON_JARS=$PROTON_BUILD/proton-j/proton-j.jar |
| |
| PYTHON_BINDINGS=$PROTON_BINDINGS/python |
| PHP_BINDINGS=$PROTON_BINDINGS/php |
| RUBY_BINDINGS=$PROTON_BINDINGS/ruby |
| PERL_BINDINGS=$PROTON_BINDINGS/perl |
| |
| # Python & Jython |
| COMMON_PYPATH=$PROTON_HOME/tests/python:$PROTON_HOME/proton-c/bindings/python |
| export PYTHONPATH=$COMMON_PYPATH:$PYTHON_BINDINGS |
| export JYTHONPATH=$COMMON_PYPATH:$PROTON_HOME/proton-j/src/main/resources:$PROTON_JARS |
| export CLASSPATH=$PROTON_JARS |
| |
| # PHP |
| if [ -d $PHP_BINDINGS ]; then |
| cat <<EOF > $PHP_BINDINGS/php.ini |
| include_path="$PHP_BINDINGS:$PROTON_HOME/proton-c/bindings/php" |
| extension="$PHP_BINDINGS/cproton.so" |
| EOF |
| export PHPRC=$PHP_BINDINGS/php.ini |
| fi |
| |
| # Ruby |
| export RUBYLIB=$RUBY_BINDINGS:$PROTON_HOME/proton-c/bindings/ruby/lib:$PROTON_HOME/tests/ruby |
| |
| # Perl |
| export PERL5LIB=$PERL5LIB:$PERL_BINDINGS:$PROTON_HOME/proton-c/bindings/perl/lib |
| |
| # Go |
| export GOPATH="$(merge_paths $PROTON_HOME/proton-c/bindings/go $GOPATH)" |
| # Help Go compiler find libraries and include files. |
| export C_INCLUDE_PATH="$(merge_paths $PROTON_HOME/proton-c/include $PROTON_BUILD/proton-c/include $C_INCLUDE_PATH)" |
| export LIBRARY_PATH="$(merge_paths $PROTON_BUILD/proton-c $LIBRARY_PATH)" |
| export LD_LIBRARY_PATH="$(merge_paths $PROTON_BUILD/proton-c $LD_LIBRARY_PATH)" |
| |
| |
| |
| # test applications |
| export PATH="$(merge_paths $PATH $PROTON_BUILD/tests/tools/apps/c $PROTON_HOME/tests/tools/apps/python $PROTON_HOME/tests/python)" |
| |
| # can the test harness use valgrind? |
| if [[ -x "$(type -p valgrind)" && "@ENABLE_VALGRIND" == "ON" ]] ; then |
| export VALGRIND=$(type -p valgrind) |
| fi |
| |
| # can the test harness use saslpasswd2? |
| if [[ -x "$(type -p saslpasswd2)" ]] ; then |
| export SASLPASSWD=$(type -p saslpasswd2) |
| fi |