diff --git a/.travis.yml b/.travis.yml index 830fd15953b9532eee80bcaa4a5ee2b572747905..cf459cf7afbebe3c4fff7413c302b0dc8fa8ce56 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,25 +31,25 @@ matrix: # default builds for MacOS - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=2.7 - ENABLE_CONTRIB=0 - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=3.4 - ENABLE_CONTRIB=0 - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=3.5 - ENABLE_CONTRIB=0 - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=3.6 - ENABLE_CONTRIB=0 @@ -57,25 +57,25 @@ matrix: # Contrib builds for MacOS - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=2.7 - ENABLE_CONTRIB=1 - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=3.4 - ENABLE_CONTRIB=1 - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=3.5 - ENABLE_CONTRIB=1 - os: osx language: generic - osx_image: xcode8.2 + osx_image: xcode8.3 env: - MB_PYTHON_VERSION=3.6 - ENABLE_CONTRIB=1 diff --git a/travis/build-wheels-osx.sh b/travis/build-wheels-osx.sh index 146ebc6421ddc81ca681d067cdcffb97e3ece4cb..734697fdc35b59884f548727eabdbc87b88110bd 100644 --- a/travis/build-wheels-osx.sh +++ b/travis/build-wheels-osx.sh @@ -4,7 +4,7 @@ echo 'Begin build-wheel OSX ...' export PYTHON_VERSION=${MB_PYTHON_VERSION/./} echo 'MB_PYTHON_VERSION: ' $MB_PYTHON_VERSION -echo 'PYTHON_VERSION: '$PYTHON_VERSION +echo 'PYTHON_VERSION: ' $PYTHON_VERSION echo 'PIP and brew installs' @@ -16,6 +16,20 @@ 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 @@ -25,94 +39,77 @@ 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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=OFF .. -fi - -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 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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=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 == 35 ]] && [[ $ENABLE_CONTRIB == 0 ]]; then - echo 'Config for Py35' +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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=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 == 36 ]] && [[ $ENABLE_CONTRIB == 0 ]]; then - echo 'Config for Py36' - 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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=OFF .. -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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=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 == 34 ]] && [[ $ENABLE_CONTRIB == 1 ]]; then - echo 'Config for Py34' +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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=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 == 35 ]] && [[ $ENABLE_CONTRIB == 1 ]]; then - echo 'Config for Py35' - 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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=OFF .. -fi +echo 'Begin build' -if [[ $PYTHON_VERSION == 36 ]] && [[ $ENABLE_CONTRIB == 1 ]]; then - echo 'Config for Py36' - 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 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_TESTS=OFF -D BUILD_PERF_TESTS=OFF \ - -D BUILD_EXAMPLES=OFF .. +if [[ $PYTHON_VERSION == 2* ]]; then + echo 'Build for Py2' + make -j8 opencv_python2 fi - -echo 'Begin build' -make -j8 +if [[ $PYTHON_VERSION == 3* ]]; then + echo 'Build for Py3' + make -j8 opencv_python3 +fi # Moving back to opencv-python cd ../.. diff --git a/travis/build-wheels.sh b/travis/build-wheels.sh index e1967cbcacd2b6a048ec184b19dbc57d560dba65..3930712b71e043450c1b46a792f867d5ed12b364 100755 --- a/travis/build-wheels.sh +++ b/travis/build-wheels.sh @@ -3,7 +3,7 @@ set +e echo 'Begin build-wheel...' export PYTHON_VERSION=${PYTHON_VERSION/./} -echo 'PYTHON_VERSION: '$PYTHON_VERSION +echo 'PYTHON_VERSION: ' $PYTHON_VERSION ENABLE_CONTRIB=$(