Nathaniel Manista | 840615e | 2015-01-22 20:31:47 +0000 | [diff] [blame] | 1 | #!/bin/bash |
Craig Tiller | 6169d5f | 2016-03-31 07:46:18 -0700 | [diff] [blame] | 2 | # Copyright 2015, Google Inc. |
Craig Tiller | 8342881 | 2015-02-16 12:13:57 -0800 | [diff] [blame] | 3 | # 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 Manista | 840615e | 2015-01-22 20:31:47 +0000 | [diff] [blame] | 30 | |
| 31 | set -ex |
| 32 | |
| 33 | # change to grpc repo root |
| 34 | cd $(dirname $0)/../.. |
| 35 | |
Jan Tattermusch | 825471c | 2016-04-25 16:52:25 -0700 | [diff] [blame] | 36 | TOX_PYTHON_ENV="$1" |
Ken Payson | 1efb601 | 2016-06-08 13:06:44 -0700 | [diff] [blame^] | 37 | PY_VERSION="${TOX_PYTHON_ENV: -2}" |
Jan Tattermusch | 825471c | 2016-04-25 16:52:25 -0700 | [diff] [blame] | 38 | |
Masood Malekghassemi | 2b84162 | 2015-07-28 17:39:02 -0700 | [diff] [blame] | 39 | ROOT=`pwd` |
Masood Malekghassemi | d00241e | 2015-12-03 16:42:36 -0800 | [diff] [blame] | 40 | export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG |
| 41 | export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG |
| 42 | export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH |
Masood Malekghassemi | 387e116 | 2016-01-05 10:16:12 -0800 | [diff] [blame] | 43 | export CFLAGS="-I$ROOT/include -std=gnu99" |
| 44 | export LDFLAGS="-L$ROOT/libs/$CONFIG" |
Masood Malekghassemi | d00241e | 2015-12-03 16:42:36 -0800 | [diff] [blame] | 45 | export GRPC_PYTHON_BUILD_WITH_CYTHON=1 |
Masood Malekghassemi | 7d8ac46 | 2016-03-15 12:15:13 -0700 | [diff] [blame] | 46 | export GRPC_PYTHON_USE_PRECOMPILED_BINARIES=0 |
Masood Malekghassemi | 68a94c8 | 2016-03-09 11:45:07 -0800 | [diff] [blame] | 47 | |
| 48 | if [ "$CONFIG" = "gcov" ] |
| 49 | then |
| 50 | export GRPC_PYTHON_ENABLE_CYTHON_TRACING=1 |
| 51 | fi |
Masood Malekghassemi | 9554534 | 2015-10-05 15:25:39 -0700 | [diff] [blame] | 52 | |
Jan Tattermusch | 825471c | 2016-04-25 16:52:25 -0700 | [diff] [blame] | 53 | tox -e ${TOX_PYTHON_ENV} --notest |
Masood Malekghassemi | eaa7d20 | 2015-12-07 14:38:53 -0800 | [diff] [blame] | 54 | |
Ken Payson | 1efb601 | 2016-06-08 13:06:44 -0700 | [diff] [blame^] | 55 | # 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. |
| 58 | if [ "$PY_VERSION" -gt "27" ] |
| 59 | then |
| 60 | mv $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so $ROOT/src/python/grpcio/grpc/_cython/cygrpc.so.backup || true |
| 61 | fi |
| 62 | |
Jan Tattermusch | 825471c | 2016-04-25 16:52:25 -0700 | [diff] [blame] | 63 | $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 Payson | 4df9647 | 2016-05-04 17:39:28 -0700 | [diff] [blame] | 67 | |
Ken Payson | 1efb601 | 2016-06-08 13:06:44 -0700 | [diff] [blame^] | 68 | if [ "$PY_VERSION" -gt "27" ] |
| 69 | then |
| 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 |
| 72 | fi |
| 73 | |
Ken Payson | 4df9647 | 2016-05-04 17:39:28 -0700 | [diff] [blame] | 74 | # 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 |