• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Define custom utilities
2# Test for OSX with [ -n "$IS_OSX" ]
3
4function remove_travis_ve_pip {
5    # Removing the system virtualenv or pip can be very problematic for
6    # macOS on Kokoro, so just leave them be.
7    :;
8}
9
10function install_pip {
11    check_python
12    PIP_CMD="sudo $PYTHON_EXE -m pip${pip_args:+ $pip_args}"
13    $PIP_CMD install --upgrade pip
14}
15
16function install_virtualenv {
17    check_python
18    check_pip
19    $PIP_CMD install --upgrade virtualenv
20    VIRTUALENV_CMD="$PYTHON_EXE -m virtualenv"
21}
22
23function pre_build {
24    # Any stuff that you need to do before you start building the wheels
25    # Runs in the root directory of this repository.
26    pushd protobuf
27
28    # Build protoc
29    ./autogen.sh
30    ./configure
31
32    CXXFLAGS="-std=c++14 -fPIC -g -O2" ./configure
33    make -j8
34
35    # Generate python dependencies.
36    pushd python
37    python setup.py build_py
38    popd
39
40    popd
41}
42
43function bdist_wheel_cmd {
44    # Builds wheel with bdist_wheel, puts into wheelhouse
45    #
46    # It may sometimes be useful to use bdist_wheel for the wheel building
47    # process.  For example, versioneer has problems with versions which are
48    # fixed with bdist_wheel:
49    # https://github.com/warner/python-versioneer/issues/121
50    local abs_wheelhouse=$1
51
52    # Modify build version
53    pwd
54    ls
55    python setup.py bdist_wheel --cpp_implementation --compile_static_extension
56    cp dist/*.whl $abs_wheelhouse
57}
58
59function build_wheel {
60    build_wheel_cmd "bdist_wheel_cmd" $@
61}
62
63function run_tests {
64    # Runs tests on installed distribution from an empty directory
65    python --version
66    python -c "from google.protobuf.pyext import _message;"
67}
68