diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2018-02-21 16:47:42 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-02-23 17:06:37 -0800 |
| commit | 471f7dc9700f7618aa16274fb9961e4e068f7656 (patch) | |
| tree | 87e418ecbd19bfd6a54cf1c8fd9a003bd9a4722d /ports/opencv/0001-winrt-fixes.patch | |
| parent | 5609d34b39009a2b511ae85ee5d8484d1db514c5 (diff) | |
| download | vcpkg-471f7dc9700f7618aa16274fb9961e4e068f7656.tar.gz vcpkg-471f7dc9700f7618aa16274fb9961e4e068f7656.zip | |
[opencv] Rework
Split off contrib, ipp, webp, openexr, tiff, png, tiff, jpeg, jasper, eigen into features.
Prevent downloads during the build
Diffstat (limited to 'ports/opencv/0001-winrt-fixes.patch')
| -rw-r--r-- | ports/opencv/0001-winrt-fixes.patch | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/ports/opencv/0001-winrt-fixes.patch b/ports/opencv/0001-winrt-fixes.patch new file mode 100644 index 000000000..c52c662e1 --- /dev/null +++ b/ports/opencv/0001-winrt-fixes.patch @@ -0,0 +1,140 @@ +From 005963d571f95fc536f60aa77098b9ecbb17128c Mon Sep 17 00:00:00 2001 +From: Robert Schumacher <roschuma@microsoft.com> +Date: Wed, 21 Feb 2018 17:03:30 -0800 +Subject: [PATCH 1/5] winrt-fixes + +--- + CMakeLists.txt | 2 +- + cmake/OpenCVCompilerOptions.cmake | 3 +++ + cmake/OpenCVModule.cmake | 2 +- + modules/core/src/utils/filesystem.cpp | 14 ++++++++++++-- + modules/highgui/include/opencv2/highgui/highgui_winrt.hpp | 1 + + modules/highgui/src/window_winrt_bridge.hpp | 1 + + modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp | 4 ++-- + 7 files changed, 21 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4464441..6bfbecd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -296,7 +296,7 @@ OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binar + # 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/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake +index 353ee12..8f4aa3b 100644 +--- a/cmake/OpenCVCompilerOptions.cmake ++++ b/cmake/OpenCVCompilerOptions.cmake +@@ -37,6 +37,9 @@ if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHa") + 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/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake +index a84bbff..8feb6df 100644 +--- a/cmake/OpenCVModule.cmake ++++ b/cmake/OpenCVModule.cmake +@@ -785,7 +785,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/core/src/utils/filesystem.cpp b/modules/core/src/utils/filesystem.cpp +index 266a92f..1d5a302 100644 +--- a/modules/core/src/utils/filesystem.cpp ++++ b/modules/core/src/utils/filesystem.cpp +@@ -186,7 +186,7 @@ bool createDirectory(const cv::String& path) + wchar_t wpath[MAX_PATH]; + size_t copied = mbstowcs(wpath, path.c_str(), MAX_PATH); + CV_Assert((copied != MAX_PATH) && (copied != (size_t)-1)); +- int result = CreateDirectoryA(wpath, NULL) ? 0 : -1; ++ int result = CreateDirectoryW(wpath, NULL) ? 0 : -1; + #else + int result = _mkdir(path.c_str()); + #endif +@@ -248,8 +248,16 @@ struct FileLock::Impl + int numRetries = 5; + do + { ++#ifdef WINRT ++ wchar_t wpath[MAX_PATH]; ++ size_t copied = mbstowcs(wpath, fname, MAX_PATH); ++ CV_Assert((copied != MAX_PATH) && (copied != (size_t)-1)); ++ handle = ::CreateFile2(wpath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, ++ OPEN_EXISTING, NULL); ++#else + handle = ::CreateFileA(fname, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); ++#endif + if (INVALID_HANDLE_VALUE == handle) + { + if (ERROR_SHARING_VIOLATION == GetLastError()) +@@ -399,7 +407,9 @@ cv::String getCacheDirectory(const char* sub_directory_name, const char* configu + if (cache_path.empty()) + { + cv::String default_cache_path; +-#ifdef _WIN32 ++#if WINRT ++ // no defaults ++#elif defined _WIN32 + char tmp_path_buf[MAX_PATH+1] = {0}; + DWORD res = GetTempPath(MAX_PATH, tmp_path_buf); + if (res > 0 && res <= MAX_PATH) +diff --git a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp +index f4147f3..b92efdd 100644 +--- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp ++++ b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp +@@ -24,6 +24,7 @@ + // 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..e2417dc 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 on again in UWP mode by adding reference to UWP Desktop Extensions + } + #endif + } +-- +2.15.1.windows.2 + |
