Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 3f8604a

Browse filesBrowse files
committed
try to vendor ruby
1 parent 43a2cb8 commit 3f8604a
Copy full SHA for 3f8604a

File tree

Expand file treeCollapse file tree

3 files changed

+63
-38
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+63
-38
lines changed

‎appveyor.yml

Copy file name to clipboardExpand all lines: appveyor.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ build_script:
141141
- cmd: |
142142
"%PYTHON%/python.exe" -m pip install --upgrade pip
143143
"%PYTHON%/python.exe" -m pip install --upgrade setuptools
144-
"%PYTHON%/python.exe" -m pip wheel --wheel-dir=%cd%\dist . --verbose
144+
set "CI_BUILD=True" && "%PYTHON%/python.exe" -m pip wheel --wheel-dir=%cd%\dist . --verbose
145145
146146
before_test:
147147
- ps: |

‎setup.py

Copy file name to clipboardExpand all lines: setup.py
+58-35Lines changed: 58 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
def main():
1414
os.chdir(os.path.dirname(os.path.abspath(__file__)))
1515

16-
# These are needed for source fetching
16+
CI_BUILD = os.environ.get("CI_BUILD", "False")
17+
is_CI_build = True if CI_BUILD == "True" else False
1718
cmake_source_dir = "opencv"
1819
minimum_supported_numpy = "1.13.1"
1920
build_contrib = get_build_env_var_by_name("contrib")
20-
# headless flag to skip GUI deps if needed
2121
build_headless = get_build_env_var_by_name("headless")
2222

2323
if sys.version_info[:2] >= (3, 6):
@@ -30,11 +30,16 @@ def main():
3030
numpy_version = "numpy>=%s" % minimum_supported_numpy
3131

3232
python_version = cmaker.CMaker.get_python_version()
33-
python_lib_path = cmaker.CMaker.get_python_library(python_version).replace('\\', '/')
34-
python_include_dir = cmaker.CMaker.get_python_include_dir(python_version).replace('\\', '/')
33+
python_lib_path = cmaker.CMaker.get_python_library(python_version).replace(
34+
"\\", "/"
35+
)
36+
python_include_dir = cmaker.CMaker.get_python_include_dir(python_version).replace(
37+
"\\", "/"
38+
)
3539

3640
if os.path.exists(".git"):
3741
import pip._internal.vcs.git as git
42+
3843
g = git.Git() # NOTE: pip API's are internal, this has to be refactored
3944

4045
g.run_command(["submodule", "sync"])
@@ -47,7 +52,9 @@ def main():
4752
["submodule", "update", "--init", "--recursive", "opencv_contrib"]
4853
)
4954

50-
package_version, build_contrib, build_headless = get_opencv_version(build_contrib, build_headless)
55+
package_version, build_contrib, build_headless = get_opencv_version(
56+
build_contrib, build_headless
57+
)
5158

5259
# https://stackoverflow.com/questions/1405913/python-32bit-or-64bit-mode
5360
x64 = sys.maxsize > 2 ** 32
@@ -86,7 +93,10 @@ def main():
8693
# In Windows, in python/X.Y/<arch>/; in Linux, in just python/X.Y/.
8794
# Naming conventions vary so widely between versions and OSes
8895
# had to give up on checking them.
89-
["python/cv2[^/]*%(ext)s" % {"ext": re.escape(sysconfig.get_config_var("EXT_SUFFIX"))}],
96+
[
97+
"python/cv2[^/]*%(ext)s"
98+
% {"ext": re.escape(sysconfig.get_config_var("EXT_SUFFIX"))}
99+
],
90100
"cv2.data": [ # OPENCV_OTHER_INSTALL_PATH
91101
("etc" if os.name == "nt" else "share/opencv4") + r"/haarcascades/.*\.xml"
92102
],
@@ -96,12 +106,14 @@ def main():
96106
# Raw paths relative to sourcetree root.
97107
files_outside_package_dir = {"cv2": ["LICENSE.txt", "LICENSE-3RD-PARTY.txt"]}
98108

109+
ci_cmake_generator = (
110+
["-G", "Visual Studio 14" + (" Win64" if x64 else "")]
111+
if os.name == "nt"
112+
else ["-G", "Unix Makefiles"]
113+
)
114+
99115
cmake_args = (
100-
(
101-
["-G", "Visual Studio 14" + (" Win64" if x64 else "")]
102-
if os.name == "nt"
103-
else ["-G", "Unix Makefiles"] # don't make CMake try (and fail) Ninja first
104-
)
116+
(ci_cmake_generator if is_CI_build else [])
105117
+ [
106118
# skbuild inserts PYTHON_* vars. That doesn't satisfy opencv build scripts in case of Py3
107119
"-DPYTHON3_EXECUTABLE=%s" % sys.executable,
@@ -131,33 +143,40 @@ def main():
131143
)
132144
)
133145

134-
# OS-specific components
135-
if sys.platform.startswith('linux') and not build_headless:
136-
cmake_args.append("-DWITH_QT=4")
137-
138-
if sys.platform == 'darwin' and not build_headless:
139-
cmake_args.append("-DWITH_QT=5")
140-
rearrange_cmake_output_data["cv2.qt.plugins.platforms"] = [
141-
(r"lib/qt/plugins/platforms/libqcocoa\.dylib")
142-
]
143-
144146
if build_headless:
145147
# it seems that cocoa cannot be disabled so on macOS the package is not truly headless
146148
cmake_args.append("-DWITH_WIN32UI=OFF")
147149
cmake_args.append("-DWITH_QT=OFF")
148-
cmake_args.append(
149-
"-DWITH_MSMF=OFF"
150-
) # see: https://github.com/skvark/opencv-python/issues/263
150+
cmake_args.append("-DWITH_GTK=OFF")
151+
if is_CI_build:
152+
cmake_args.append(
153+
"-DWITH_MSMF=OFF"
154+
) # see: https://github.com/skvark/opencv-python/issues/263
155+
156+
# OS-specific components during CI builds
157+
if is_CI_build:
158+
if sys.platform.startswith("linux") and not build_headless:
159+
cmake_args.append("-DWITH_QT=4")
151160

152-
if sys.platform.startswith("linux"):
153-
cmake_args.append("-DWITH_V4L=ON")
154-
cmake_args.append("-DWITH_LAPACK=ON")
155-
cmake_args.append("-DENABLE_PRECOMPILED_HEADERS=OFF")
161+
if sys.platform == "darwin" and not build_headless:
162+
cmake_args.append("-DWITH_QT=5")
163+
164+
if sys.platform.startswith("linux"):
165+
cmake_args.append("-DWITH_V4L=ON")
166+
cmake_args.append("-DWITH_LAPACK=ON")
167+
cmake_args.append("-DENABLE_PRECOMPILED_HEADERS=OFF")
156168

157169
if sys.platform.startswith("linux") and not x64 and "bdist_wheel" in sys.argv:
158170
subprocess.check_call("patch -p0 < patches/patchOpenEXR", shell=True)
159171

160-
if sys.platform == "darwin" and "bdist_wheel" in sys.argv:
172+
if (
173+
sys.platform == "darwin"
174+
and "bdist_wheel" in sys.argv
175+
and ("WITH_QT=5" in sys.argv or "WITH_QT=5" in cmake_args)
176+
):
177+
rearrange_cmake_output_data["cv2.qt.plugins.platforms"] = [
178+
(r"lib/qt/plugins/platforms/libqcocoa\.dylib")
179+
]
161180
subprocess.check_call("patch -p1 < patches/patchQtPlugins", shell=True)
162181

163182
# works via side effect
@@ -357,22 +376,25 @@ def _classify_installed_files_override(
357376
cmake_install_dir=cmake_install_reldir,
358377
)
359378

379+
360380
def get_opencv_version(contrib, headless):
361381
# cv2/version.py should be generated by running find_version.py
362382
version = {}
363383
here = os.path.abspath(os.path.dirname(__file__))
364384
version_file = os.path.join(here, "cv2", "version.py")
365385

366-
if not os.path.exists(version_file):
367-
old_args = sys.argv.copy()
368-
sys.argv = ['', str(contrib), str(headless)]
369-
runpy.run_path("find_version.py", run_name="__main__")
370-
sys.argv = old_args
386+
# generate a fresh version.py always when Git repository exists
387+
if os.path.exists(".git"):
388+
old_args = sys.argv.copy()
389+
sys.argv = ["", str(contrib), str(headless)]
390+
runpy.run_path("find_version.py", run_name="__main__")
391+
sys.argv = old_args
371392

372393
with open(version_file) as fp:
373394
exec(fp.read(), version)
374395

375-
return version['opencv_version'], version['contrib'], version['headless']
396+
return version["opencv_version"], version["contrib"], version["headless"]
397+
376398

377399
def get_build_env_var_by_name(flag_name):
378400
flag_set = False
@@ -390,6 +412,7 @@ def get_build_env_var_by_name(flag_name):
390412

391413
return flag_set
392414

415+
393416
# This creates a list which is empty but returns a length of 1.
394417
# Should make the wheel a binary distribution and platlib compliant.
395418
class EmptyListWithLength(list):

‎travis_config.sh

Copy file name to clipboardExpand all lines: travis_config.sh
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function bdist_wheel_cmd {
1414
# copied from multibuild's common_utils.sh
1515
# add osx deployment target so it doesnt default to 10.6
1616
local abs_wheelhouse=$1
17-
pip wheel --wheel-dir="$PWD/dist" . --verbose $BDIST_PARAMS
17+
CI_BUILD=1 pip wheel --wheel-dir="$PWD/dist" . --verbose $BDIST_PARAMS
1818
cp dist/*.whl $abs_wheelhouse
1919
if [ -n "$USE_CCACHE" -a -z "$BREW_BOOTSTRAP_MODE" ]; then ccache -s; fi
2020
}
@@ -89,9 +89,11 @@ function pre_build {
8989

9090
local CACHE_STAGE; (echo "$TRAVIS_BUILD_STAGE_NAME" | grep -qiF "final") || CACHE_STAGE=1
9191

92+
export HOMEBREW_FORCE_VENDOR_RUBY=1
93+
brew update
94+
9295
#after the cache stage, all bottles and Homebrew metadata should be already cached locally
9396
if [ -n "$CACHE_STAGE" ]; then
94-
brew update
9597
generate_ffmpeg_formula
9698
brew_add_local_bottles
9799
fi

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.