diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-04-19 04:32:46 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-04-19 04:32:46 -0700 |
| commit | 16a206b781c5f14d63689e98960d6648ee2be141 (patch) | |
| tree | 804356de4dce03d986e75a1c2dc8dd2a872e3d4e | |
| parent | 280a6c6d7f55fb61858c0b90fa80a52883ec5801 (diff) | |
| parent | e1d41a365a52927c75afa3d554e8bd04bf107c24 (diff) | |
| download | vcpkg-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.patch | 57 | ||||
| -rw-r--r-- | ports/opencv/002-fix-uwp.patch | 39 | ||||
| -rw-r--r-- | ports/opencv/CONTROL | 2 | ||||
| -rw-r--r-- | ports/opencv/portfile.cmake | 2 |
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) |
