blob: 4902b61046d9ce47ac9c61437a39defa3f4f8071 [file] [log] [blame]
#!/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
# Location of interop test files.
export PN_INTEROP_DIR=$PROTON_HOME/tests/interop