提交 d1a71597 编写于 作者: D David Lechner

fix missing Qt plugin on macOS

上级 58262101
import importlib
import os
import sys
from .cv2 import *
from .data import *
......@@ -6,3 +8,8 @@ from .data import *
# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)
if sys.platform == 'darwin':
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = os.path.join(
os.path.dirname(os.path.abspath(__file__)), 'qt', 'plugins'
)
diff --git a/opencv/CMakeLists.txt b/opencv/CMakeLists.txt
index 8ccad4d03a..0d5e2a79e9 100644
--- a/opencv/CMakeLists.txt
+++ b/opencv/CMakeLists.txt
@@ -1164,6 +1164,7 @@ if(WITH_QT OR HAVE_QT)
if(HAVE_QT5)
status(" QT:" "YES (ver ${Qt5Core_VERSION_STRING})")
status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO)
+ install(DIRECTORY ${Qt5_DIR}/../../../plugins DESTINATION lib/qt)
elseif(HAVE_QT)
status(" QT:" "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})")
status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
......@@ -128,6 +128,7 @@ def main():
if sys.platform == 'darwin' and not build_headless:
cmake_args.append("-DWITH_QT=5")
rearrange_cmake_output_data['cv2.qt.plugins.platforms'] = [(r'lib/qt/plugins/platforms/libqcocoa\.dylib')]
if build_headless:
# it seems that cocoa cannot be disabled so on macOS the package is not truly headless
......@@ -144,6 +145,7 @@ def main():
# https://github.com/skvark/opencv-python/issues/21
cmake_args.append("-DCMAKE_CXX_FLAGS=-stdlib=libc++")
cmake_args.append("-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9")
subprocess.check_call("patch -p1 < patches/patchQtPlugins", shell=True)
if sys.platform.startswith('linux'):
cmake_args.append("-DWITH_IPP=OFF") # tests fail with IPP compiled with
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册