Skip to content

Commit 5aa5348

Browse files
committed
Fix build speed problem
There was a small mistake in build-wheels.sh. It looped trough available python's and built opencv for each of them. The loop is not needed since multibuild sets the correct python to the PATH for the Docker container.
1 parent f9d0c95 commit 5aa5348

File tree

1 file changed

+96
-97
lines changed

1 file changed

+96
-97
lines changed

travis/build-wheels.sh

+96-97
Original file line numberDiff line numberDiff line change
@@ -2,104 +2,103 @@
22
set +e
33
echo 'Begin build-wheel...'
44

5-
export PYTHON_VERSION=${PYTHON_VERSION/./}
6-
5+
export PYTHON_VERSION=${MB_PYTHON_VERSION/./}
6+
echo 'MB_PYTHON_VERSION: ' $MB_PYTHON_VERSION
77
echo 'PYTHON_VERSION: '$PYTHON_VERSION
88

99
ENABLE_CONTRIB=$(<contrib.enabled)
1010

11-
for PYBIN in /opt/python/cp$PYTHON_VERSION*/bin; do
12-
echo 'PWD : '$PWD
13-
echo 'PYBIN: '$PYBIN
14-
15-
$PYBIN/pip install -r requirements.txt
16-
17-
# Begin build
18-
echo 'Begin build'
19-
cd opencv
20-
mkdir build
21-
if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
22-
echo 'Config for Py2'
23-
cmake28 -H"." -B"build" -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python3=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
24-
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
25-
-DPYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
26-
-DPYTHON2_EXECUTABLE=$PYBIN/python \
27-
-DPYTHON2_VERSION_STRING=$($PYBIN/python -c "from platform import python_version; print python_version()") \
28-
-DPYTHON2_INCLUDE_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
29-
-DPYTHON2_PACKAGES_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
30-
-DPYTHON2_NUMPY_INCLUDE_DIRS=$($PYBIN/python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
31-
-DPYTHON2_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)")
32-
fi
33-
34-
if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
35-
echo 'Config for Py3'
36-
cmake28 -H"." -B"build" -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
37-
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
38-
-DPYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
39-
-DPYTHON3_EXECUTABLE=$PYBIN/python \
40-
-DPYTHON3_VERSION_STRING=$($PYBIN/python -c "from platform import python_version; print python_version()") \
41-
-DPYTHON3_INCLUDE_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
42-
-DPYTHON3_PACKAGES_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
43-
-DPYTHON3_NUMPY_INCLUDE_DIRS=$($PYBIN/python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
44-
-DPYTHON3_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)")
45-
fi
46-
47-
if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
48-
echo 'Config for Py2'
49-
cmake28 -H"." -B"build" -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python3=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
50-
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
51-
-DPYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
52-
-DPYTHON2_EXECUTABLE=$PYBIN/python \
53-
-DPYTHON2_VERSION_STRING=$($PYBIN/python -c "from platform import python_version; print python_version()") \
54-
-DPYTHON2_INCLUDE_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
55-
-DPYTHON2_PACKAGES_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
56-
-DPYTHON2_NUMPY_INCLUDE_DIRS=$($PYBIN/python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
57-
-DPYTHON2_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)")
58-
fi
59-
60-
if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
61-
echo 'Config for Py3'
62-
cmake28 -H"." -B"build" -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
63-
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
64-
-DPYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
65-
-DPYTHON3_EXECUTABLE=$PYBIN/python \
66-
-DPYTHON3_VERSION_STRING=$($PYBIN/python -c "from platform import python_version; print python_version()") \
67-
-DPYTHON3_INCLUDE_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
68-
-DPYTHON3_PACKAGES_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
69-
-DPYTHON3_NUMPY_INCLUDE_DIRS=$($PYBIN/python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
70-
-DPYTHON3_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)")
71-
fi
72-
73-
if [[ $PYTHON_VERSION == 2* ]]; then
74-
echo 'Build for Py2'
75-
(cd build; make -j8 opencv_python2)
76-
fi
77-
78-
if [[ $PYTHON_VERSION == 3* ]]; then
79-
echo 'Build for Py3'
80-
(cd build; make -j8 opencv_python3)
81-
fi
82-
83-
84-
# Moving back to opencv-python
85-
cd ..
86-
87-
if [[ $PYTHON_VERSION == 2* ]]; then
88-
echo 'Copying *.so for Py2'
89-
cp opencv/build/lib/cv2.so cv2/
90-
fi
91-
92-
if [[ $PYTHON_VERSION == 3* ]]; then
93-
echo 'Copying *.so for Py3'
94-
cp opencv/build/lib/python3/*.so cv2/
95-
fi
96-
97-
# Build wheel
98-
echo 'Build wheel'
99-
$PYBIN/pip wheel . -w /io/wheelhouse/
100-
101-
# Cleanup
102-
echo 'Cleanup'
103-
rm -fr opencv/build
104-
rm cv2/*.so
105-
done
11+
python -m pip install -r requirements.txt
12+
13+
# Begin build
14+
echo 'Begin build'
15+
cd opencv
16+
mkdir build
17+
18+
if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
19+
echo 'Config for Py2'
20+
cmake28 -H"." -B"build" -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python3=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
21+
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
22+
-DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=OFF \
23+
-DPYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
24+
-DPYTHON2_EXECUTABLE=python \
25+
-DPYTHON2_VERSION_STRING=$(python -c "from platform import python_version; print python_version()") \
26+
-DPYTHON2_INCLUDE_PATH=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
27+
-DPYTHON2_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
28+
-DPYTHON2_NUMPY_INCLUDE_DIRS=$(python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
29+
-DPYTHON2_NUMPY_VERSION=$(python -c "import numpy; print(numpy.version.version)")
30+
fi
31+
32+
if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
33+
echo 'Config for Py3'
34+
cmake28 -H"." -B"build" -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
35+
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
36+
-DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=OFF \
37+
-DPYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
38+
-DPYTHON3_EXECUTABLE=python \
39+
-DPYTHON3_VERSION_STRING=$(python -c "from platform import python_version; print python_version()") \
40+
-DPYTHON3_INCLUDE_PATH=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
41+
-DPYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
42+
-DPYTHON3_NUMPY_INCLUDE_DIRS=$(python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
43+
-DPYTHON3_NUMPY_VERSION=$(python -c "import numpy; print(numpy.version.version)")
44+
fi
45+
46+
if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
47+
echo 'Config for Py2'
48+
cmake28 -H"." -B"build" -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python3=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
49+
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
50+
-DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=OFF \
51+
-DPYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
52+
-DPYTHON2_EXECUTABLE=python \
53+
-DPYTHON2_VERSION_STRING=$(python -c "from platform import python_version; print python_version()") \
54+
-DPYTHON2_INCLUDE_PATH=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
55+
-DPYTHON2_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
56+
-DPYTHON2_NUMPY_INCLUDE_DIRS=$(python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
57+
-DPYTHON2_NUMPY_VERSION=$(python -c "import numpy; print(numpy.version.version)")
58+
fi
59+
60+
if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
61+
echo 'Config for Py3'
62+
cmake28 -H"." -B"build" -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \
63+
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF -DBUILD_DOCS=OFF \
64+
-DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=OFF \
65+
-DPYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
66+
-DPYTHON3_EXECUTABLE=python \
67+
-DPYTHON3_VERSION_STRING=$(python -c "from platform import python_version; print python_version()") \
68+
-DPYTHON3_INCLUDE_PATH=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
69+
-DPYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
70+
-DPYTHON3_NUMPY_INCLUDE_DIRS=$(python -c "import os; os.environ['DISTUTILS_USE_SDK']='1'; import numpy.distutils; print(os.pathsep.join(numpy.distutils.misc_util.get_numpy_include_dirs()))") \
71+
-DPYTHON3_NUMPY_VERSION=$(python -c "import numpy; print(numpy.version.version)")
72+
fi
73+
74+
if [[ $PYTHON_VERSION == 2* ]]; then
75+
echo 'Build for Py2'
76+
(cd build; make -j8 opencv_python2)
77+
fi
78+
79+
if [[ $PYTHON_VERSION == 3* ]]; then
80+
echo 'Build for Py3'
81+
(cd build; make -j8 opencv_python3)
82+
fi
83+
84+
# Moving back to opencv-python
85+
cd ..
86+
87+
if [[ $PYTHON_VERSION == 2* ]]; then
88+
echo 'Copying *.so for Py2'
89+
cp opencv/build/lib/cv2.so cv2/
90+
fi
91+
92+
if [[ $PYTHON_VERSION == 3* ]]; then
93+
echo 'Copying *.so for Py3'
94+
cp opencv/build/lib/python3/*.so cv2/
95+
fi
96+
97+
# Build wheel
98+
echo 'Build wheel'
99+
python -m pip wheel . -w /io/wheelhouse/
100+
101+
# Cleanup
102+
echo 'Cleanup'
103+
rm -fr opencv/build
104+
rm cv2/*.so

0 commit comments

Comments
 (0)