aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-04-19 04:32:46 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-04-19 04:32:46 -0700
commit16a206b781c5f14d63689e98960d6648ee2be141 (patch)
tree804356de4dce03d986e75a1c2dc8dd2a872e3d4e
parent280a6c6d7f55fb61858c0b90fa80a52883ec5801 (diff)
parente1d41a365a52927c75afa3d554e8bd04bf107c24 (diff)
downloadvcpkg-16a206b781c5f14d63689e98960d6648ee2be141.tar.gz
vcpkg-16a206b781c5f14d63689e98960d6648ee2be141.zip
Merge pull request #817 from zabulus/#562
Fix build of opencv for uwp #562
-rw-r--r--ports/opencv/001-fix-uwp.patch57
-rw-r--r--ports/opencv/002-fix-uwp.patch39
-rw-r--r--ports/opencv/CONTROL2
-rw-r--r--ports/opencv/portfile.cmake2
4 files changed, 99 insertions, 1 deletions
diff --git a/ports/opencv/001-fix-uwp.patch b/ports/opencv/001-fix-uwp.patch
new file mode 100644
index 000000000..fa047ee4e
--- /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/002-fix-uwp.patch b/ports/opencv/002-fix-uwp.patch
new file mode 100644
index 000000000..d684141f5
--- /dev/null
+++ b/ports/opencv/002-fix-uwp.patch
@@ -0,0 +1,39 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b4265bd..f1621e0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -271,7 +271,7 @@ OCV_OPTION(INSTALL_FORCE_UNIX_PATHS "Force unix-style installation" OFF)
+ # OpenCV build options
+ # ===================================================
+ OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
+-OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND NOT CMAKE_CROSSCOMPILING) )
++OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND (MSVC OR NOT CMAKE_CROSSCOMPILING)) )
+ OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) )
+ OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
+ OCV_OPTION(ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CMAKE_COMPILER_IS_GNUCXX )
+diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
+index c8242dd..97edd14 100644
+--- a/cmake/OpenCVModule.cmake
++++ b/cmake/OpenCVModule.cmake
+@@ -730,7 +730,7 @@ macro(ocv_create_module)
+ set(the_module_target ${the_module})
+ endif()
+
+- if(WINRT)
++ if(WINRT AND BUILD_TESTS)
+ # removing APPCONTAINER from modules to run from console
+ # in case of usual starting of WinRT test apps output is missing
+ # so starting of console version w/o APPCONTAINER is required to get test results
+diff --git a/modules/highgui/src/window.cpp b/modules/highgui/src/window.cpp
+index 9306f8e..69a814e 100644
+--- a/modules/highgui/src/window.cpp
++++ b/modules/highgui/src/window.cpp
+@@ -209,7 +209,7 @@ int cv::waitKeyEx(int delay)
+ int cv::waitKey(int delay)
+ {
+ int code = waitKeyEx(delay);
+-#ifndef HAVE_WINRT
++#ifndef WINRT
+ static int use_legacy = -1;
+ if (use_legacy < 0)
+ {
diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL
index 47fe19d0c..8da12f3d9 100644
--- a/ports/opencv/CONTROL
+++ b/ports/opencv/CONTROL
@@ -1,5 +1,5 @@
Source: opencv
-Version: 3.2.0
+Version: 3.2.0-1
Build-Depends: zlib, libpng, libjpeg-turbo, tiff
#Use the following line instead for optional features from OpenCV-contrib that require protobuf
#Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf
diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake
index 35de581eb..b6705c89d 100644
--- a/ports/opencv/portfile.cmake
+++ b/ports/opencv/portfile.cmake
@@ -14,6 +14,8 @@ vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES "${CMAKE_CURRENT_LIST_DIR}/opencv-installation-options.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/001-fix-uwp.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/002-fix-uwp.patch"
)
file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/libjpeg ${SOURCE_PATH}/3rdparty/libpng ${SOURCE_PATH}/3rdparty/zlib ${SOURCE_PATH}/3rdparty/libtiff)