blob: b1c90df824c495e83cd9dc380eeee7edec9e2d02 [file] [log] [blame]
Nathaniel Manista840615e2015-01-22 20:31:47 +00001#!/bin/bash
Craig Tiller6169d5f2016-03-31 07:46:18 -07002# Copyright 2015, Google Inc.
Craig Tiller83428812015-02-16 12:13:57 -08003# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met:
8#
9# * Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# * Redistributions in binary form must reproduce the above
12# copyright notice, this list of conditions and the following disclaimer
13# in the documentation and/or other materials provided with the
14# distribution.
15# * Neither the name of Google Inc. nor the names of its
16# contributors may be used to endorse or promote products derived from
17# this software without specific prior written permission.
18#
19# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Nathaniel Manista840615e2015-01-22 20:31:47 +000030
31set -ex
32
33# change to grpc repo root
34cd $(dirname $0)/../..
35
Jan Tattermusch825471c2016-04-25 16:52:25 -070036TOX_PYTHON_ENV="$1"
Ken Payson1efb6012016-06-08 13:06:44 -070037PY_VERSION="${TOX_PYTHON_ENV: -2}"
Jan Tattermusch825471c2016-04-25 16:52:25 -070038
Masood Malekghassemi2b841622015-07-28 17:39:02 -070039ROOT=`pwd`
Masood Malekghassemid00241e2015-12-03 16:42:36 -080040export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG
41export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG
42export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH
Masood Malekghassemi387e1162016-01-05 10:16:12 -080043export CFLAGS="-I$ROOT/include -std=gnu99"
44export LDFLAGS="-L$ROOT/libs/$CONFIG"
Masood Malekghassemid00241e2015-12-03 16:42:36 -080045export GRPC_PYTHON_BUILD_WITH_CYTHON=1
Masood Malekghassemi7d8ac462016-03-15 12:15:13 -070046export GRPC_PYTHON_USE_PRECOMPILED_BINARIES=0
Masood Malekghassemi68a94c82016-03-09 11:45:07 -080047
48if [ "$CONFIG" = "gcov" ]
49then
50 export GRPC_PYTHON_ENABLE_CYTHON_TRACING=1
51fi
Masood Malekghassemi95545342015-10-05 15:25:39 -070052
Jan Tattermusch825471c2016-04-25 16:52:25 -070053tox -e ${TOX_PYTHON_ENV} --notest
Masood Malekghassemieaa7d202015-12-07 14:38:53 -080054
Ken Payson1efb6012016-06-08 13:06:44 -070055# We force the .so naming convention in PEP 3149 for side by side installation support
56# Note this is the default in Python3, but explicitly disabled for Darwin, so we only
57# use this hack for our testing environment.
58if [ "$PY_VERSION" -gt "27" ]
59then
60 mv $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so.backup || true
61fi
62
Jan Tattermusch825471c2016-04-25 16:52:25 -070063$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build
64$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_py
65$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_ext --inplace
66$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py gather --test
Ken Payson4df96472016-05-04 17:39:28 -070067
Ken Payson1efb6012016-06-08 13:06:44 -070068if [ "$PY_VERSION" -gt "27" ]
69then
70 mv $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so $ROOT/src/python/grpcio/grpc/_cython/cygrpc.cpython-${PY_VERSION}m.so || true
71 mv $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so.backup $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so || true
72fi
73
Ken Payson4df96472016-05-04 17:39:28 -070074# Build the health checker
75$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/src/python/grpcio_health_checking/setup.py build
76$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/src/python/grpcio_health_checking/setup.py build_py