Skip to content

Commit

Permalink
* custom build logic should be unneeded now, will uncomment as needed
Browse files Browse the repository at this point in the history
  • Loading branch information
native-api committed Dec 18, 2017
1 parent 1cbeaf2 commit a328a7a
Show file tree
Hide file tree
Showing 4 changed files with 287 additions and 285 deletions.
22 changes: 16 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ env:
global:
- REPO_DIR=opencv
# Commit from opencv that you want to build
- BUILD_COMMIT=4af3ca4e4d7be246a49d751a79c6392e848ac2aa
# ;repo metadata takes care of this
#- BUILD_COMMIT=4af3ca4e4d7be246a49d751a79c6392e848ac2aa
# pip dependencies to _build_ your project
- BUILD_DEPENDS="numpy==1.11.1"
# ;setup.py itself takes care of this
#- BUILD_DEPENDS="numpy==1.11.1"
# pip dependencies to _test_ your project. Include any dependencies
# that you need, that are also specified in BUILD_DEPENDS, this will be
# a separate install.
Expand All @@ -14,22 +16,30 @@ env:
- secure: "mU040XIYWtDjRms27deQy5fNg9HBFF9fiLfSteBaMjopZKXFUBsdMTKYGEVvX8DA879guMdjG8Prw1aCFhTTYlWgJ0Afm4YucRC0vAD4HLNhqLJ2lIpRceR3+2qPX+Oz5ATVVRi3ghBeJ20LLtNgOgf6esQVjdrYNC+YqmguClHKEYAxS7ngW42iQP8HX2anRcz9q9H7exZ9fX/D1PJfMNka/mNaB5KXZu5zdLuk/E0VbWU2tMWVIDUvx4uBlpE1d8HixEV5LHnuVE/QI36BcyucYxstTNKW6pGYgrhkYf+0PX4BphZXwY7EUBwzXsYLmyge6yH8W6NfvTW0ZasFF6xzQc9bsj+gAZN7H+hN2a42VQqIpkoJw9sU0hqzCOQf6ZvWUQgwFdAHJRHqe/zk4456WxnF0kAgbZdKaGOl0/n0WvgHNqD5bgO8Zzb1XyJTKoR+eAtYKXuz3KgpxKvZMMQVr8wMlI1cFEuGjIm+7ZrYB5jPvQrVzV/DgOq4gkPHOjjhu478UFlhGA9/XWwcyidC3b7zuBN2E7xVuTMlKdk7URB3AHXfG5bZgUG80vllQDGXQDpHVnv4Qi8bGCzI4iKTpp4fCibbqxFLxW1jhjmgePseGcie7Avpe+zXznkbmM2BqMCu3QRmtmFL3eCifwMf3rCNlAs0Sd3iLmEvyos="
- secure: "omn6B+H6s0g1p9rhLGhFtFN1bSB80HCsNUUD9ROEpUirk7Sj7Wxms4CDi1f7aACANsZPXD7YZ72oNpWDJ6hSfTBf2yN1/d1iPILs7F5jt0yeratkDEOXkys1QpfMNO7r3DZ17X3IwvUGy9Mm+Sv15k+DaBdQ/65qwQ4ORIbHZRv3/lwkQ7Z88utjx6DLa9Jwc8fnEjjzIry51lO3OGJoWrjOZlOi2HV9MZ69PuuBdEEuicwfeLnV64QWRle++B51TQZC/3HF5+BBvYXm0LdvV4nSQVa9nTXaOWYcBROPNZizktJI91G6vG6gghWmI1cDR53n9LgCbA3YkPTJm/5Gjn9D+gfU5F16WQ4PFOHfzPZD8nTVmlUDUiuQ30W9QZ+O2ct7wi/xF4/Ff7V+0RIqGSnjhX6SGWk7UziQyGgCjBvYiRIQzfUyGu+86vrqNVXCyBlKOz6rWStTyq/Z0KEIXZFqop+ddeYdsEem5ZxCQ51uTpRMynVgEdKj++1Hn5411Rhntw0Am7RWdDEbFJ65OUyIpNtvlcHVM7ur03oz0hGcZIIkxWHJrCdr80Nw9r/s6KXYvidCNsu4SPx0XYo8KiTA6E2lkIAa5Ct6dZR6m5gjG2vmvlKzRmoD/7byJZN66usNxBh2LuKlgNFuHfG6iR+I6f3XCNmSUOJfm7KZYVI="

# Will only add Linux envs 'cuz Travis doesn't support Python Mac builds as of this writing
# https://docs.travis-ci.com/user/languages/python/
# Multibuild builds manylinux1 in a custom child Docker, so the version on the host is irrelevant.
# The version to use in Docker is set with the MB_PYTHON_VERSION variable.
# We exclude this Python below, so these are effectively a no-op.
language: python
# The travis Python version is unrelated to the version we build and test
# with. This is set with the MB_PYTHON_VERSION variable.
python: 3.5
# Required to invoke docker ourselves as per https://docs.travis-ci.com/user/docker/
sudo: required
dist: trusty
services: docker
# https://docs.travis-ci.com/user/reference/trusty/
dist: trusty

matrix:
fast_finish: true
exclude:
# Exclude the default Python 3.5 build
# Exclude the host Python 3.5
# Since this is the only version we specified earlier, this excludes
# everything, and we instead list all the envs below by hand.
- python: 3.5
include:

# default builds for MacOS
# Travis doesn't support Python builds in OSX, so "generic"
- os: osx
language: generic
osx_image: xcode8.3
Expand Down
14 changes: 3 additions & 11 deletions config.sh
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
#!/bin/bash
set +e
#Sourced by multibuild scripts. See multibuild/README.rst
echo "=== Loading config.sh === "

if [ -n "$IS_OSX" ]; then
echo " > OSX environment "
function build_wheel {
# Custom build_wheel function for OSX
# Run using '.' instead of '$REPO_DIR' to build from
# opencv-python instead of opencv
build_pip_wheel . $@
}
else
echo " > Linux environment "
fi

function pre_build {
echo "Starting pre-build"

set +e
if [ -n "$IS_OSX" ]; then
echo "Running for OSX"
source travis/build-wheels-osx.sh
Expand All @@ -31,7 +24,6 @@ function run_tests {
# Runs tests on installed distribution from an empty directory
# python --version
# python -c 'import sys; import yourpackage; sys.exit(yourpackage.test())'
set +e
echo "Run tests..."
echo $PWD
ls -lh
Expand All @@ -42,8 +34,8 @@ function run_tests {
source ../travis/test-wheels.sh
else
echo "Running for linux"
apt-get update
apt-get -y install --fix-missing libglib2.0-0 libsm6
#apt-get update
#apt-get -y install --fix-missing libglib2.0-0 libsm6
cd /io/tests/
source /io/travis/test-wheels.sh
fi
Expand Down
280 changes: 140 additions & 140 deletions travis/build-wheels-osx.sh
Original file line number Diff line number Diff line change
@@ -1,142 +1,142 @@
#!/bin/bash
set +e
echo 'Begin build-wheel OSX ...'

export PYTHON_VERSION=${MB_PYTHON_VERSION/./}
echo 'MB_PYTHON_VERSION: ' "$MB_PYTHON_VERSION"
echo 'PYTHON_VERSION: ' "$PYTHON_VERSION"

echo 'PIP and brew installs'

pip install "$BUILD_DEPENDS"

brew tap cartr/qt4
brew tap-pin cartr/qt4
brew install qt@4

qmake -query

cd opencv

echo "Apply patch"

git apply --ignore-space-change --ignore-whitespace ../travis/disable_i386.patch

echo "Detect Python paths for OpenCV"

PYTHON_VERSION_STRING=$(python -c "from platform import python_version; print(python_version())")
PYTHON_INCLUDE_PATH=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())")
PYTHON_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
PYTHON_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()))")
PYTHON_NUMPY_VERSION=$(python -c "import numpy; print(numpy.version.version)")

echo "PYthon version string: $PYTHON_VERSION_STRING"
echo "Python include path: $PYTHON_INCLUDE_PATH"
echo "Python packages path: $PYTHON_PACKAGES_PATH"
echo "Python numpy incude dirs: $PYTHON_NUMPY_INCLUDE_DIRS"
echo "Python numpy version: $PYTHON_NUMPY_VERSION"

echo 'Config make'

mkdir build
cd build

if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
echo 'Config for Py2'
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake \
-D BUILD_opencv_python3=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
-D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D PYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
-D PYTHON2_EXECUTABLE=python \
-D PYTHON2_VERSION_STRING="$PYTHON_VERSION_STRING" \
-D PYTHON2_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
-D PYTHON2_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
-D PYTHON2_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
-D PYTHON2_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
..

fi

if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
echo 'Config for Py3'
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake \
-D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
-D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D PYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
-D PYTHON3_EXECUTABLE=python \
-D PYTHON3_VERSION_STRING="$PYTHON_VERSION_STRING" \
-D PYTHON3_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
-D PYTHON3_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
-D PYTHON3_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
-D PYTHON3_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
..

fi

if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
echo 'Config for Py2'
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_opencv_python3=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
-D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D PYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
-D PYTHON2_EXECUTABLE=python \
-D PYTHON2_VERSION_STRING="$PYTHON_VERSION_STRING" \
-D PYTHON2_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
-D PYTHON2_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
-D PYTHON2_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
-D PYTHON2_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
..

fi

if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
echo 'Config for Py3'
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
-D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D PYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
-D PYTHON3_EXECUTABLE=python \
-D PYTHON3_VERSION_STRING="$PYTHON_VERSION_STRING" \
-D PYTHON3_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
-D PYTHON3_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
-D PYTHON3_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
-D PYTHON3_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
..

fi

echo 'Begin build'

if [[ $PYTHON_VERSION == 2* ]]; then
echo 'Build for Py2'
make -j8 opencv_python2

fi

if [[ $PYTHON_VERSION == 3* ]]; then
echo 'Build for Py3'
make -j8 opencv_python3

fi

# Moving back to opencv-python
cd ../..

if [[ $PYTHON_VERSION == 2* ]]; then
echo 'Copying *.so for Py2'
cp opencv/build/lib/cv2.so cv2/

fi

if [[ $PYTHON_VERSION == 3* ]]; then
echo 'Copying *.so for Py3'
cp opencv/build/lib/python3/*.so cv2/

fi

echo 'Build wheel'
# set +e
# echo 'Begin build-wheel OSX ...'

# export PYTHON_VERSION=${MB_PYTHON_VERSION/./}
# echo 'MB_PYTHON_VERSION: ' "$MB_PYTHON_VERSION"
# echo 'PYTHON_VERSION: ' "$PYTHON_VERSION"

# echo 'PIP and brew installs'

# pip install "$BUILD_DEPENDS"

# brew tap cartr/qt4
# brew tap-pin cartr/qt4
# brew install qt@4

# qmake -query

# cd opencv

# echo "Apply patch"

# git apply --ignore-space-change --ignore-whitespace ../travis/disable_i386.patch

# echo "Detect Python paths for OpenCV"

# PYTHON_VERSION_STRING=$(python -c "from platform import python_version; print(python_version())")
# PYTHON_INCLUDE_PATH=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())")
# PYTHON_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
# PYTHON_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()))")
# PYTHON_NUMPY_VERSION=$(python -c "import numpy; print(numpy.version.version)")

# echo "PYthon version string: $PYTHON_VERSION_STRING"
# echo "Python include path: $PYTHON_INCLUDE_PATH"
# echo "Python packages path: $PYTHON_PACKAGES_PATH"
# echo "Python numpy incude dirs: $PYTHON_NUMPY_INCLUDE_DIRS"
# echo "Python numpy version: $PYTHON_NUMPY_VERSION"

# echo 'Config make'

# mkdir build
# cd build

# if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
# echo 'Config for Py2'
# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake \
# -D BUILD_opencv_python3=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
# -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
# -D BUILD_EXAMPLES=OFF \
# -D PYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
# -D PYTHON2_EXECUTABLE=python \
# -D PYTHON2_VERSION_STRING="$PYTHON_VERSION_STRING" \
# -D PYTHON2_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
# -D PYTHON2_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
# -D PYTHON2_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
# -D PYTHON2_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
# ..

# fi

# if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then
# echo 'Config for Py3'
# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake \
# -D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
# -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
# -D BUILD_EXAMPLES=OFF \
# -D PYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
# -D PYTHON3_EXECUTABLE=python \
# -D PYTHON3_VERSION_STRING="$PYTHON_VERSION_STRING" \
# -D PYTHON3_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
# -D PYTHON3_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
# -D PYTHON3_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
# -D PYTHON3_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
# ..

# fi

# if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
# echo 'Config for Py2'
# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
# -D BUILD_opencv_python3=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
# -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
# -D BUILD_EXAMPLES=OFF \
# -D PYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \
# -D PYTHON2_EXECUTABLE=python \
# -D PYTHON2_VERSION_STRING="$PYTHON_VERSION_STRING" \
# -D PYTHON2_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
# -D PYTHON2_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
# -D PYTHON2_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
# -D PYTHON2_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
# ..

# fi

# if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then
# echo 'Config for Py3'
# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_TOOLCHAIN_FILE=../../travis/toolchain_macos.cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
# -D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF -D WITH_QT=4 \
# -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
# -D BUILD_EXAMPLES=OFF \
# -D PYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \
# -D PYTHON3_EXECUTABLE=python \
# -D PYTHON3_VERSION_STRING="$PYTHON_VERSION_STRING" \
# -D PYTHON3_INCLUDE_PATH="$PYTHON_INCLUDE_PATH" \
# -D PYTHON3_PACKAGES_PATH="$PYTHON_PACKAGES_PATH" \
# -D PYTHON3_NUMPY_INCLUDE_DIRS="$PYTHON_NUMPY_INCLUDE_DIRS" \
# -D PYTHON3_NUMPY_VERSION="$PYTHON_NUMPY_VERSION" \
# ..

# fi

# echo 'Begin build'

# if [[ $PYTHON_VERSION == 2* ]]; then
# echo 'Build for Py2'
# make -j8 opencv_python2

# fi

# if [[ $PYTHON_VERSION == 3* ]]; then
# echo 'Build for Py3'
# make -j8 opencv_python3

# fi

# # Moving back to opencv-python
# cd ../..

# if [[ $PYTHON_VERSION == 2* ]]; then
# echo 'Copying *.so for Py2'
# cp opencv/build/lib/cv2.so cv2/

# fi

# if [[ $PYTHON_VERSION == 3* ]]; then
# echo 'Copying *.so for Py3'
# cp opencv/build/lib/python3/*.so cv2/

# fi

# echo 'Build wheel'

Loading

0 comments on commit a328a7a

Please sign in to comment.