mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-22 18:47:09 +01:00
[azure-storage-cpp] Support non-windows
This commit is contained in:
parent
b831381cf5
commit
fb0c047b4d
@ -1,5 +1,5 @@
|
||||
Source: azure-storage-cpp
|
||||
Version: 3.2.1
|
||||
Build-Depends: cpprestsdk, atlmfc
|
||||
Build-Depends: cpprestsdk, atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), glibmm (!windows&!uwp), libxmlpp (!windows&!uwp), libuuid (!windows&!uwp)
|
||||
Description: Microsoft Azure Storage Client SDK for C++
|
||||
A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. Microsoft Azure Storage team's blog - http://blogs.msdn.com/b/windowsazurestorage/
|
||||
|
13
ports/azure-storage-cpp/glibmm-cmake.patch
Normal file
13
ports/azure-storage-cpp/glibmm-cmake.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/Microsoft.WindowsAzure.Storage/cmake/Modules/FindGlibmm.cmake b/Microsoft.WindowsAzure.Storage/cmake/Modules/FindGlibmm.cmake
|
||||
index 79a4bcb..fe130bd 100644
|
||||
--- a/Microsoft.WindowsAzure.Storage/cmake/Modules/FindGlibmm.cmake
|
||||
+++ b/Microsoft.WindowsAzure.Storage/cmake/Modules/FindGlibmm.cmake
|
||||
@@ -36,7 +36,7 @@ find_path(GlibmmConfig_INCLUDE_DIR
|
||||
)
|
||||
|
||||
find_library(Glibmm_LIBRARY
|
||||
- NAMES glibmm-2.4
|
||||
+ NAMES glibmm glibmm-2.4
|
||||
PATHS
|
||||
${Glibmm_PKGCONF_LIBRARY_DIRS}
|
||||
/usr
|
@ -18,11 +18,14 @@ vcpkg_apply_patches(
|
||||
${CMAKE_CURRENT_LIST_DIR}/cmake.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/static-builds.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/support-cpprest-findpackage.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/glibmm-cmake.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/pplx-do-while.patch
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}/Microsoft.WindowsAzure.Storage
|
||||
OPTIONS
|
||||
-DCMAKE_FIND_FRAMEWORK=LAST
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_SAMPLES=OFF
|
||||
)
|
||||
|
52
ports/azure-storage-cpp/pplx-do-while.patch
Normal file
52
ports/azure-storage-cpp/pplx-do-while.patch
Normal file
@ -0,0 +1,52 @@
|
||||
diff --git a/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h b/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h
|
||||
index 756163d..6fbfd44 100644
|
||||
--- a/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h
|
||||
+++ b/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h
|
||||
@@ -366,7 +366,7 @@ namespace azure { namespace storage { namespace core {
|
||||
// TODO: Reduce usage of auto variable types
|
||||
|
||||
auto instance = std::make_shared<executor_impl>(command, options, context);
|
||||
- return pplx::details::do_while([instance]() -> pplx::task<bool>
|
||||
+ return details::_do_while([instance]() -> pplx::task<bool>
|
||||
{
|
||||
// 0. Begin request
|
||||
instance->validate_location_mode();
|
||||
diff --git a/Microsoft.WindowsAzure.Storage/includes/wascore/util.h b/Microsoft.WindowsAzure.Storage/includes/wascore/util.h
|
||||
index f3401f2..6a6aa48 100644
|
||||
--- a/Microsoft.WindowsAzure.Storage/includes/wascore/util.h
|
||||
+++ b/Microsoft.WindowsAzure.Storage/includes/wascore/util.h
|
||||
@@ -127,6 +127,21 @@ namespace azure { namespace storage { namespace core {
|
||||
};
|
||||
#endif
|
||||
|
||||
+ namespace details
|
||||
+ {
|
||||
+ template<class F, class T = bool>
|
||||
+ pplx::task<T> _do_while(F func)
|
||||
+ {
|
||||
+ pplx::task<T> first = func();
|
||||
+ return first.then([=](bool guard) -> pplx::task<T> {
|
||||
+ if (guard)
|
||||
+ return azure::storage::core::details::_do_while<F,T>(func);
|
||||
+ else
|
||||
+ return first;
|
||||
+ });
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
}}} // namespace azure::storage::core
|
||||
|
||||
#pragma pop_macro("max")
|
||||
diff --git a/Microsoft.WindowsAzure.Storage/src/util.cpp b/Microsoft.WindowsAzure.Storage/src/util.cpp
|
||||
index dd2250a..b8d1341 100644
|
||||
--- a/Microsoft.WindowsAzure.Storage/src/util.cpp
|
||||
+++ b/Microsoft.WindowsAzure.Storage/src/util.cpp
|
||||
@@ -98,7 +98,7 @@ namespace azure { namespace storage { namespace core {
|
||||
auto obuffer = ostream.streambuf();
|
||||
auto length_ptr = (length != std::numeric_limits<utility::size64_t>::max()) ? std::make_shared<utility::size64_t>(length) : nullptr;
|
||||
auto total_ptr = std::make_shared<utility::size64_t>(0);
|
||||
- return pplx::details::do_while([istream, obuffer, buffer_size, length_ptr, total_ptr, max_length] () -> pplx::task<bool>
|
||||
+ return azure::storage::core::details::_do_while([istream, obuffer, buffer_size, length_ptr, total_ptr, max_length] () -> pplx::task<bool>
|
||||
{
|
||||
size_t read_length = buffer_size;
|
||||
if ((length_ptr != nullptr) && (*length_ptr < read_length))
|
Loading…
x
Reference in New Issue
Block a user