From 0f50cb951297e13973e9cdf73db8b295e4ca9c9a Mon Sep 17 00:00:00 2001 From: Ryan Hileman Date: Sat, 26 Dec 2020 22:31:18 -0800 Subject: [PATCH 1/3] custom minimal build --- appveyor.yml | 193 +++------------------------------------------------ setup.py | 6 +- 2 files changed, 9 insertions(+), 190 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index c79e7de4..c0ecf104 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,148 +1,14 @@ +image: Visual Studio 2019 +platform: + - x64 +configuration: Release environment: - USER: - secure: fXgF9uyy6sT0JoVOR7BoqA== - - PASS: - secure: 0bXSOVjf9x8L7nErTivu92TF1FwNosTjFJQPmxp8Dys= - - matrix: - - PYTHON: "C:\\Python36" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python36-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python37" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python37-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python38" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python38-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python39" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python39-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python36" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python36-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python37" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python37-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python38" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python38-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python39" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python39-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 0 - - - PYTHON: "C:\\Python36" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python36-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python37" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python37-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python38" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python38-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python39" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python39-x64" - ENABLE_CONTRIB: 0 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python36" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python36-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python37" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python37-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python38" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python38-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python39" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - - - PYTHON: "C:\\Python39-x64" - ENABLE_CONTRIB: 1 - ENABLE_HEADLESS: 1 - -matrix: - fast_finish: true + PYTHON: "C:\\Python39-x64" + ENABLE_CONTRIB: 0 + ENABLE_HEADLESS: 1 + CMAKE_ARGS: "-DWITH_OPENCL=OFF -DWITH_OPENCL_SVM=OFF -DWITH_ADE=OFF -DWITH_IPP=OFF -DWITH_PROTOBUF=OFF -DBUILD_PROTOBUF=OFF -DBUILD_IPP_IW=OFF -DBUILD_ITT=OFF -DBUILD_JASPER=OFF -DBUILD_JPEG=OFF -DBUILD_OPENEXR=OFF -DBUILD_OPENJPEG=OFF -DBUILD_PNG=OFF -DBUILD_TBB=OFF -DBUILD_TIFF=OFF -DBUILD_WEBP=OFF -DBUILD_ZLIB=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_PFM=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_JPG=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENEXR=OFF -DWITH_OPENJPEG=OFF -DWITH_PNG=OFF -DWITH_QUIRC=OFF -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_WEBP=OFF -DWITH_ZLIB=OFF -DWITH_1394=OFF -DWITH_AVFOUNDATION=OFF -DWITH_CAP_IOS=OFF -DWITH_CAROTENE=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_VTK=OFF -DENABLE_LTO=ON -DBUILD_LIST=core,features2d,flann,imgproc,python3" install: - - ps: | - if (-not (Test-Path $env:PYTHON)) { - curl -o install_python.ps1 https://raw.githubusercontent.com/matthew-brett/multibuild/devel/install_python.ps1 - .\install_python.ps1 - } - ps: if (-not (Test-Path $env:PYTHON)) { throw "No $env:PYTHON" } - "set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - python --version @@ -153,49 +19,6 @@ build_script: "%PYTHON%\\python.exe" -m pip install --upgrade setuptools set "CI_BUILD=1" && "%PYTHON%\\python.exe" -m pip wheel --wheel-dir=%cd%\dist . --verbose -before_test: -- ps: | - - cd ${Env:APPVEYOR_BUILD_FOLDER}\tests - $env:PYTHONWARNINGS = "ignore:::pip._internal.cli.base_command" - &"${Env:PYTHON}\\python.exe" -m pip install --user --no-warn-script-location (ls "../dist/opencv_*.whl") - if ($LastExitCode -ne 0) {throw $LastExitCode} - -test_script: -- cmd: | - - cd %APPVEYOR_BUILD_FOLDER%\tests - "%PYTHON%\\python.exe" -m unittest test - artifacts: - path: dist\opencv*.whl name: wheels - -deploy_script: -- ps: | - - if (${Env:APPVEYOR_REPO_TAG} -eq "true") { - cd ${Env:APPVEYOR_BUILD_FOLDER} - if (${Env:ENABLE_CONTRIB} -eq 0) { - if (${Env:ENABLE_HEADLESS} -eq 0) { - echo "This is a default build. Deployment will be done to PyPI entry opencv-python." - } - else { - echo "This is a headless build. Deployment will be done to PyPI entry opencv-python-headless." - } - } - else { - if (${Env:ENABLE_HEADLESS} -eq 0) { - echo "This is a contrib build. Deployment will be done to PyPI entry opencv-contrib-python." - } - else { - echo "This is a headless contrib build. Deployment will be done to PyPI entry opencv-contrib-python-headless." - } - } - - &"${Env:PYTHON}\\python.exe" -m pip install twine - &"${Env:PYTHON}\\python.exe" -m twine upload -u ${Env:USER} -p ${Env:PASS} --skip-existing dist/opencv* - } - else { - echo "Tag not set, deployment skipped." - } diff --git a/setup.py b/setup.py index a4f9f729..531fba73 100644 --- a/setup.py +++ b/setup.py @@ -92,11 +92,7 @@ def main(): # Files from CMake output to copy to package. # Path regexes with forward slashes relative to CMake install dir. rearrange_cmake_output_data = { - "cv2": ( - [r"bin/opencv_videoio_ffmpeg\d{3}%s\.dll" % ("_64" if x64 else "")] - if os.name == "nt" - else [] - ) + "cv2": [] + # In Windows, in python/X.Y//; in Linux, in just python/X.Y/. # Naming conventions vary so widely between versions and OSes From 8414448aecca9810b6bb320d18f99bd5b84ca23e Mon Sep 17 00:00:00 2001 From: Ryan Hileman Date: Sun, 27 Dec 2020 18:48:51 -0800 Subject: [PATCH 2/3] force arm64 compatible numpy version, don't bother with cmake --- pyproject.toml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d7c5527d..c2b4be3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,5 @@ [build-system] requires = [ - "setuptools", "wheel", "scikit-build", "cmake", "pip", - "numpy==1.13.3; python_version=='3.6' and platform_machine != 'aarch64'", - "numpy==1.19.3; python_version>='3.6' and sys_platform == 'linux' and platform_machine == 'aarch64'", - "numpy==1.14.5; python_version=='3.7' and platform_machine != 'aarch64'", - "numpy==1.17.3; python_version=='3.8' and platform_machine != 'aarch64'", - "numpy==1.19.3; python_version>='3.9' and platform_machine != 'aarch64'" + "setuptools", "wheel", "scikit-build", "pip", + "numpy==1.20.0rc2" ] From 24ac35e7459e4c398cfa3beb6cef93b10cdc0c56 Mon Sep 17 00:00:00 2001 From: Ryan Hileman Date: Mon, 7 Jun 2021 08:04:29 -0700 Subject: [PATCH 3/3] appveyor: add objdetect --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index c0ecf104..83d65e71 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ environment: PYTHON: "C:\\Python39-x64" ENABLE_CONTRIB: 0 ENABLE_HEADLESS: 1 - CMAKE_ARGS: "-DWITH_OPENCL=OFF -DWITH_OPENCL_SVM=OFF -DWITH_ADE=OFF -DWITH_IPP=OFF -DWITH_PROTOBUF=OFF -DBUILD_PROTOBUF=OFF -DBUILD_IPP_IW=OFF -DBUILD_ITT=OFF -DBUILD_JASPER=OFF -DBUILD_JPEG=OFF -DBUILD_OPENEXR=OFF -DBUILD_OPENJPEG=OFF -DBUILD_PNG=OFF -DBUILD_TBB=OFF -DBUILD_TIFF=OFF -DBUILD_WEBP=OFF -DBUILD_ZLIB=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_PFM=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_JPG=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENEXR=OFF -DWITH_OPENJPEG=OFF -DWITH_PNG=OFF -DWITH_QUIRC=OFF -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_WEBP=OFF -DWITH_ZLIB=OFF -DWITH_1394=OFF -DWITH_AVFOUNDATION=OFF -DWITH_CAP_IOS=OFF -DWITH_CAROTENE=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_VTK=OFF -DENABLE_LTO=ON -DBUILD_LIST=core,features2d,flann,imgproc,python3" + CMAKE_ARGS: "-DWITH_OPENCL=OFF -DWITH_OPENCL_SVM=OFF -DWITH_ADE=OFF -DWITH_IPP=OFF -DWITH_PROTOBUF=OFF -DBUILD_PROTOBUF=OFF -DBUILD_IPP_IW=OFF -DBUILD_ITT=OFF -DBUILD_JASPER=OFF -DBUILD_JPEG=OFF -DBUILD_OPENEXR=OFF -DBUILD_OPENJPEG=OFF -DBUILD_PNG=OFF -DBUILD_TBB=OFF -DBUILD_TIFF=OFF -DBUILD_WEBP=OFF -DBUILD_ZLIB=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_PFM=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_JPG=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENEXR=OFF -DWITH_OPENJPEG=OFF -DWITH_PNG=OFF -DWITH_QUIRC=OFF -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_WEBP=OFF -DWITH_ZLIB=OFF -DWITH_1394=OFF -DWITH_AVFOUNDATION=OFF -DWITH_CAP_IOS=OFF -DWITH_CAROTENE=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_VTK=OFF -DENABLE_LTO=ON -DBUILD_LIST=core,features2d,flann,imgproc,python3,objdetect" install: - ps: if (-not (Test-Path $env:PYTHON)) { throw "No $env:PYTHON" }