diff --git a/ports/cpprestsdk/chart_traits.patch b/ports/cpprestsdk/chart_traits.patch new file mode 100644 index 00000000000000..f6b5345da2e286 --- /dev/null +++ b/ports/cpprestsdk/chart_traits.patch @@ -0,0 +1,100 @@ +diff --git a/Release/include/cpprest/char_traits.h b/Release/include/cpprest/char_traits.h +new file mode 100644 +index 00000000..ba9ef01e +--- /dev/null ++++ b/Release/include/cpprest/char_traits.h +@@ -0,0 +1,82 @@ ++#pragma once ++ ++#include ++ ++#if (_LIBCPP_VERSION >= 190000) ++ ++#include ++#include ++#include ++ ++namespace std ++{ ++template<> ++struct char_traits ++{ ++ using char_type = uint8_t; ++ using int_type = unsigned int; ++ using off_type = std::streamoff; ++ using pos_type = std::streampos; ++ using state_type = std::mbstate_t; ++ ++ static void assign(char_type& c1, const char_type& c2) noexcept { c1 = c2; } ++ ++ static bool eq(char_type c1, char_type c2) noexcept { return c1 == c2; } ++ ++ static bool lt(char_type c1, char_type c2) noexcept { return c1 < c2; } ++ ++ static int compare(const char_type* s1, const char_type* s2, std::size_t n) noexcept ++ { ++ return std::memcmp(s1, s2, n); ++ } ++ ++ static std::size_t length(const char_type* s) noexcept ++ { ++ const char_type* p = s; ++ while (*p != 0) ++ ++p; ++ return p - s; ++ } ++ ++ static const char_type* find(const char_type* s, std::size_t n, const char_type& a) noexcept ++ { ++ for (std::size_t i = 0; i < n; ++i) ++ { ++ if (eq(s[i], a)) ++ { ++ return s + i; ++ } ++ } ++ ++ return nullptr; ++ } ++ ++ static char_type* move(char_type* s1, const char_type* s2, std::size_t n) noexcept ++ { ++ return static_cast(std::memmove(s1, s2, n)); ++ } ++ ++ static char_type* copy(char_type* s1, const char_type* s2, std::size_t n) noexcept ++ { ++ return static_cast(std::memcpy(s1, s2, n)); ++ } ++ ++ static char_type* assign(char_type* s, std::size_t n, char_type a) noexcept ++ { ++ std::fill_n(s, n, a); ++ return s; ++ } ++ ++ static int_type not_eof(int_type c) noexcept { return c == eof() ? ~eof() : c; } ++ ++ static char_type to_char_type(int_type c) noexcept { return static_cast(c); } ++ ++ static int_type to_int_type(char_type c) noexcept { return static_cast(c); } ++ ++ static bool eq_int_type(int_type c1, int_type c2) noexcept { return c1 == c2; } ++ ++ static int_type eof() noexcept { return static_cast(-1); } ++}; ++} // namespace std ++ ++#endif // (_LIBCPP_VERSION >= 190000) +diff --git a/Release/include/cpprest/streams.h b/Release/include/cpprest/streams.h +index b6c38640..704bfc92 100644 +--- a/Release/include/cpprest/streams.h ++++ b/Release/include/cpprest/streams.h +@@ -15,6 +15,7 @@ + #ifndef CASA_STREAMS_H + #define CASA_STREAMS_H + ++#include "cpprest/char_traits.h" + #include "cpprest/astreambuf.h" + #include + #include diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake index 9e8e1aa7bfc3f2..fc2f9c65ad9aba 100644 --- a/ports/cpprestsdk/portfile.cmake +++ b/ports/cpprestsdk/portfile.cmake @@ -11,6 +11,7 @@ vcpkg_from_github( fix-clang-dllimport.patch # workaround for https://github.com/microsoft/cpprestsdk/issues/1710 silence-stdext-checked-array-iterators-warning.patch fix-asio-error.patch + chart_traits.patch # remove after https://github.com/microsoft/cpprestsdk/pull/1820 ) vcpkg_check_features( diff --git a/ports/cpprestsdk/vcpkg.json b/ports/cpprestsdk/vcpkg.json index 8d26279f454385..0f76b048c1a896 100644 --- a/ports/cpprestsdk/vcpkg.json +++ b/ports/cpprestsdk/vcpkg.json @@ -1,7 +1,7 @@ { "name": "cpprestsdk", "version": "2.10.19", - "port-version": 3, + "port-version": 4, "description": [ "C++11 JSON, REST, and OAuth library", "The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services." diff --git a/versions/baseline.json b/versions/baseline.json index 65cb4d765b7282..daed2c9ae0ec27 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2022,7 +2022,7 @@ }, "cpprestsdk": { "baseline": "2.10.19", - "port-version": 3 + "port-version": 4 }, "cppslippi": { "baseline": "1.4.3.16", diff --git a/versions/c-/cpprestsdk.json b/versions/c-/cpprestsdk.json index 2141604442acdb..0b8f1853efd534 100644 --- a/versions/c-/cpprestsdk.json +++ b/versions/c-/cpprestsdk.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "938096ad282071faff4b7b5746dd3193ad95c408", + "version": "2.10.19", + "port-version": 4 + }, { "git-tree": "9f5e160191038cbbd2470e534c43f051c80e7d44", "version": "2.10.19",