diff --git a/.travis.yml b/.travis.yml index ddf5d45d1611050ca9aa52b47b7bfcd08bf54e5f..c0c55462e6d3a5ec21c1132d310539f5910b9243 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,73 +27,176 @@ matrix: # Exclude the default Python 3.5 build - python: 3.5 include: + + # default builds for MacOS + - os: osx + language: generic + osx_image: xcode8.2 + env: + - MB_PYTHON_VERSION=2.7 + - ENABLE_CONTRIB=0 + - os: osx + language: generic + osx_image: xcode8.2 + env: + - MB_PYTHON_VERSION=3.4 + - ENABLE_CONTRIB=0 + - os: osx + language: generic + osx_image: xcode8.2 + env: + - MB_PYTHON_VERSION=3.5 + - ENABLE_CONTRIB=0 + - os: osx + language: generic + osx_image: xcode8.2 + env: + - MB_PYTHON_VERSION=3.6 + - ENABLE_CONTRIB=0 + + # Contrib builds for MacOS - os: osx language: generic osx_image: xcode8.2 env: - MB_PYTHON_VERSION=2.7 + - ENABLE_CONTRIB=1 - os: osx language: generic osx_image: xcode8.2 env: - MB_PYTHON_VERSION=3.4 + - ENABLE_CONTRIB=1 - os: osx language: generic osx_image: xcode8.2 env: - MB_PYTHON_VERSION=3.5 + - ENABLE_CONTRIB=1 - os: osx language: generic osx_image: xcode8.2 env: - MB_PYTHON_VERSION=3.6 + - ENABLE_CONTRIB=1 + + # default builds for Linux + - os: linux + env: + - MB_PYTHON_VERSION=2.7 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=2.7 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - UNICODE_WIDTH=16 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=2.7 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 + - PLAT=i686 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=2.7 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 + - PLAT=i686 + - UNICODE_WIDTH=16 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=3.4 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=3.4 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 + - PLAT=i686 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=3.5 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=3.5 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 + - PLAT=i686 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=3.6 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=0 + - os: linux + env: + - MB_PYTHON_VERSION=3.6 + - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 + - PLAT=i686 + - ENABLE_CONTRIB=0 + + # contrib builds for Linux - os: linux env: - MB_PYTHON_VERSION=2.7 - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=2.7 - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 - UNICODE_WIDTH=16 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=2.7 - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 - PLAT=i686 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=2.7 - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 - PLAT=i686 - UNICODE_WIDTH=16 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=3.4 - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=3.4 - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 - PLAT=i686 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=3.5 - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=3.5 - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 - PLAT=i686 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=3.6 - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64 + - ENABLE_CONTRIB=1 - os: linux env: - MB_PYTHON_VERSION=3.6 - DOCKER_IMAGE=quay.io/pypa/manylinux1_i686 - PLAT=i686 + - ENABLE_CONTRIB=1 before_install: - source multibuild/common_utils.sh @@ -111,5 +214,4 @@ script: after_success: # Upload wheels to pypi - - pip install twine - - if [ -n "$TRAVIS_TAG" ]; then twine upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*; else echo "Tag not set, deployment skipped."; fi \ No newline at end of file + - source travis/deploy.sh \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 443559f10517a96ef0b9be6bc167e2b1b0286d2d..3d6ae0b1cd59aeba6d4220a2e9dc92ca081f5572 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -121,4 +121,8 @@ artifacts: name: wheels deploy_script: -- deploy.cmd +- cd %APPVEYOR_BUILD_FOLDER% + +- if %ENABLE_CONTRIB% EQU 0 (echo "This is default build. Deplyoment will be done to to PyPI entry opencv-python.") else (echo "This is contrib build. Deplyoment will be done to to PyPI entry opencv-contrib-python.") + +- if "%APPVEYOR_REPO_TAG%"=="true" ("%PYTHON%/python.exe" -m twine upload -u %USER% -p %PASS% --skip-existing dist/opencv*) else (echo "Tag not set, deployment skipped.") \ No newline at end of file diff --git a/deploy.cmd b/deploy.cmd deleted file mode 100644 index 33c74ecd08ca36e44cbed8831bf0705a19f24b5e..0000000000000000000000000000000000000000 --- a/deploy.cmd +++ /dev/null @@ -1,13 +0,0 @@ -cd %APPVEYOR_BUILD_FOLDER% - -if %ENABLE_CONTRIB% EQU 1 ( - - echo "This is contrib build. Deplyoment will be done to to PyPI entry opencv-contrib-python." - if "%APPVEYOR_REPO_TAG%"=="true" ("%PYTHON%/python.exe" -m twine upload -u %USER% -p %PASS% --skip-existing dist/opencv*) else (echo "Tag not set, deployment skipped.") - -) else ( - - echo "This is default build. Deplyoment will be done to to PyPI entry opencv-python." - if "%APPVEYOR_REPO_TAG%"=="true" ("%PYTHON%/python.exe" -m twine upload -u %USER% -p %PASS% --skip-existing dist/opencv*) else (echo "Tag not set, deployment skipped.") - -) \ No newline at end of file diff --git a/travis/build-wheels-osx.sh b/travis/build-wheels-osx.sh index cf5b04374b9c50f638b2221299c27232eae53107..405d56a46e23f8a9fd738b555070509329de93b6 100644 --- a/travis/build-wheels-osx.sh +++ b/travis/build-wheels-osx.sh @@ -16,7 +16,7 @@ cd opencv mkdir build cd build -if [[ $PYTHON_VERSION == 2* ]]; then +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 BUILD_opencv_python3=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF \ @@ -27,7 +27,7 @@ if [[ $PYTHON_VERSION == 2* ]]; then -D BUILD_EXAMPLES=OFF .. fi -if [[ $PYTHON_VERSION == 34 ]]; then +if [[ $PYTHON_VERSION == 34 ]] && [[ $ENABLE_CONTRIB == 0 ]]; then echo 'Config for Py34' cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF \ @@ -38,7 +38,7 @@ if [[ $PYTHON_VERSION == 34 ]]; then -D BUILD_EXAMPLES=OFF .. fi -if [[ $PYTHON_VERSION == 35 ]]; then +if [[ $PYTHON_VERSION == 35 ]] && [[ $ENABLE_CONTRIB == 0 ]]; then echo 'Config for Py35' cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF \ @@ -49,7 +49,7 @@ if [[ $PYTHON_VERSION == 35 ]]; then -D BUILD_EXAMPLES=OFF .. fi -if [[ $PYTHON_VERSION == 36 ]]; then +if [[ $PYTHON_VERSION == 36 ]] && [[ $ENABLE_CONTRIB == 0 ]]; then echo 'Config for Py36' cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_opencv_python2=OFF -D BUILD_opencv_java=OFF -D BUILD_SHARED_LIBS=OFF -D WITH_LAPACK=OFF \ @@ -61,6 +61,51 @@ if [[ $PYTHON_VERSION == 36 ]]; then 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 -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 PYTHON2_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ + -D PYTHON2_LIBRARY=/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/bin \ + -D PYTHON2_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 \ + -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D BUILD_EXAMPLES=OFF .. +fi + +if [[ $PYTHON_VERSION == 34 ]] && [[ $ENABLE_CONTRIB == 1 ]]; then + echo 'Config for Py34' + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -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 PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ + -D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/bin \ + -D PYTHON3_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m \ + -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D BUILD_EXAMPLES=OFF .. +fi + +if [[ $PYTHON_VERSION == 35 ]] && [[ $ENABLE_CONTRIB == 1 ]]; then + echo 'Config for Py35' + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -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 PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ + -D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/bin \ + -D PYTHON3_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m \ + -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D BUILD_EXAMPLES=OFF .. +fi + +if [[ $PYTHON_VERSION == 36 ]] && [[ $ENABLE_CONTRIB == 1 ]]; then + echo 'Config for Py36' + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/loca -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 PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ + -D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/bin \ + -D PYTHON3_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m \ + -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D BUILD_EXAMPLES=OFF .. +fi + + echo 'Begin build' make -j4 diff --git a/travis/build-wheels.sh b/travis/build-wheels.sh index 1bec8de2a8c2a5f50e5a0ace081b6c03c88e64b1..9bb3428fdbdb7103ef4e5cb7d42ee22ed91406b2 100755 --- a/travis/build-wheels.sh +++ b/travis/build-wheels.sh @@ -1,7 +1,6 @@ #!/bin/bash set +e echo 'Begin build-wheel...' -/opt/_internal/cpython-3.5.1/bin/pip3.5 install --upgrade git+git://github.com/pypa/auditwheel export PYTHON_VERSION=${PYTHON_VERSION/./} @@ -17,7 +16,7 @@ for PYBIN in /opt/python/cp$PYTHON_VERSION*/bin; do echo 'Begin build' cd opencv mkdir build - if [[ $PYTHON_VERSION == 2* ]]; then + if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then echo 'Config for Py2' cmake28 -H"." -B"build" -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python3=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \ -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF \ @@ -30,7 +29,7 @@ for PYBIN in /opt/python/cp$PYTHON_VERSION*/bin; do -DPYTHON2_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)") fi - if [[ $PYTHON_VERSION == 3* ]]; then + if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 0 ]]; then echo 'Config for Py3' cmake28 -H"." -B"build" -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DBUILD_SHARED_LIBS=OFF \ -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF \ @@ -43,6 +42,32 @@ for PYBIN in /opt/python/cp$PYTHON_VERSION*/bin; do -DPYTHON3_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)") fi + if [[ $PYTHON_VERSION == 2* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then + echo 'Config for Py2' + 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 \ + -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF \ + -DPYTHON2INTERP_FOUND=ON -DPYTHON2LIBS_FOUND=ON \ + -DPYTHON2_EXECUTABLE=$PYBIN/python \ + -DPYTHON2_VERSION_STRING=$($PYBIN/python -c "from platform import python_version; print python_version()") \ + -DPYTHON2_INCLUDE_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ + -DPYTHON2_PACKAGES_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ + -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()))") \ + -DPYTHON2_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)") + fi + + if [[ $PYTHON_VERSION == 3* ]] && [[ $ENABLE_CONTRIB == 1 ]]; then + echo 'Config for Py3' + 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 \ + -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_IPP=OFF \ + -DPYTHON3INTERP_FOUND=ON -DPYTHON3LIBS_FOUND=ON \ + -DPYTHON3_EXECUTABLE=$PYBIN/python \ + -DPYTHON3_VERSION_STRING=$($PYBIN/python -c "from platform import python_version; print python_version()") \ + -DPYTHON3_INCLUDE_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ + -DPYTHON3_PACKAGES_PATH=$($PYBIN/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ + -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()))") \ + -DPYTHON3_NUMPY_VERSION=$($PYBIN/python -c "import numpy; print(numpy.version.version)") + fi + if [[ $PYTHON_VERSION == 2* ]]; then echo 'Build for Py2' (cd build; make -j5 opencv_python2) diff --git a/travis/deploy.sh b/travis/deploy.sh new file mode 100644 index 0000000000000000000000000000000000000000..adfd3fbdd0949d56cb5f86c7aded3a18b0a4bfca --- /dev/null +++ b/travis/deploy.sh @@ -0,0 +1,13 @@ +pip install twine + +if [[ $ENABLE_CONTRIB == 0 ]]; then + echo "This is default build. Deployment will be done to to PyPI entry opencv-python." +else + echo "This is contrib build. Deployment will be done to to PyPI entry opencv-contrib-python." +fi + +if [ -n "$TRAVIS_TAG" ]; then + twine upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*; +else + echo "Tag not set, deployment skipped."; +fi \ No newline at end of file