aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHennadii Zabula <zabulus12@gmail.com>2017-03-17 20:43:09 +0200
committerHennadii Zabula <zabulus12@gmail.com>2017-03-17 20:43:09 +0200
commitefba9e6a237d4447d3cf1c3635dc6202c8788367 (patch)
treec60ce4f86c4edbba8f2071f8fb2ff85dfb1556e1
parent01b1e39c6a006adba7b9cf2af758be679d0b7eb9 (diff)
downloadvcpkg-efba9e6a237d4447d3cf1c3635dc6202c8788367.tar.gz
vcpkg-efba9e6a237d4447d3cf1c3635dc6202c8788367.zip
Fix build of opencv for uwp #562
-rw-r--r--ports/opencv/001-fix-uwp.patch57
-rw-r--r--ports/opencv/portfile.cmake1
2 files changed, 58 insertions, 0 deletions
diff --git a/ports/opencv/001-fix-uwp.patch b/ports/opencv/001-fix-uwp.patch
new file mode 100644
index 000000000..d34decce8
--- /dev/null
+++ b/ports/opencv/001-fix-uwp.patch
@@ -0,0 +1,57 @@
+diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
+index 0dcf7ed..c722a03 100644
+--- "a/cmake/OpenCVCompilerOptions.cmake"
++++ "b/cmake/OpenCVCompilerOptions.cmake"
+@@ -21,6 +21,9 @@ if(MSVC)
+ string(REPLACE "/EHsc" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "Flags used by the compiler during all build types." FORCE)
+ endif()
++ if(${CMAKE_SYSTEM_NAME} STREQUAL "WindowsStore")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
++ endif()
+ endif()
+
+ set(OPENCV_EXTRA_FLAGS "")
+ diff --git "a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp" "b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp"
+index f4147f3..498f414 100644
+--- "a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp"
++++ "b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp"
+@@ -24,6 +24,8 @@
+ // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ // POSSIBILITY OF SUCH DAMAGE.
+
++#include "opencv2/core/cvdef.h"
++
+ using namespace Windows::UI::Xaml::Controls;
+
+ namespace cv
+diff --git "a/modules/highgui/src/window_winrt_bridge.hpp" "b/modules/highgui/src/window_winrt_bridge.hpp"
+index 25f4aef..5429f0b 100644
+--- "a/modules/highgui/src/window_winrt_bridge.hpp"
++++ "b/modules/highgui/src/window_winrt_bridge.hpp"
+@@ -28,6 +28,7 @@
+
+ #include <map>
+ #include <opencv2\core.hpp>
++#include "opencv2/highgui/highgui_c.h"
+
+ using namespace Windows::UI::Xaml::Controls;
+
+diff --git "a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp" "b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp"
+index 236e227..9f5970e 100644
+--- "a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp"
++++ "b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp"
+@@ -94,10 +94,10 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber()
+
+ void Media::CaptureFrameGrabber::ShowCameraSettings()
+ {
+-#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP
++#if (WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY!=WINAPI_FAMILY_APP)
+ if (_state == State::Started)
+ {
+- CameraOptionsUI::Show(_capture.Get());
++ CameraOptionsUI::Show(_capture.Get()); // TODO: Turn it back by adding reference to UWP Desktop Extensions
+ }
+ #endif
+ }
+ \ No newline at end of file
diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake
index 6614fbb1a..1f2856233 100644
--- a/ports/opencv/portfile.cmake
+++ b/ports/opencv/portfile.cmake
@@ -14,6 +14,7 @@ vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES "${CMAKE_CURRENT_LIST_DIR}/opencv-installation-options.patch"
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/001-fix-uwp.patch"
)
file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/libjpeg ${SOURCE_PATH}/3rdparty/libpng ${SOURCE_PATH}/3rdparty/zlib ${SOURCE_PATH}/3rdparty/libtiff)