diff --git a/packages/c/cef/patches/97.1.9/msvc_cpp20.patch b/packages/c/cef/patches/97.1.9/msvc_cpp20.patch new file mode 100644 index 000000000..57f6fb65e --- /dev/null +++ b/packages/c/cef/patches/97.1.9/msvc_cpp20.patch @@ -0,0 +1,18 @@ +diff --git a/include/base/cef_template_util.h b/include/base/cef_template_util.h +index 02e2ead06..a77cf643a 100644 +--- a/include/base/cef_template_util.h ++++ b/include/base/cef_template_util.h +@@ -276,8 +276,13 @@ struct negation : bool_constant(B::value)> {}; + // References: + // [1] https://en.cppreference.com/w/cpp/types/result_of + // [2] https://wg21.link/meta.trans.other#lib:invoke_result ++#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) ++template ++using invoke_result = std::invoke_result; ++#else + template + using invoke_result = std::result_of; ++#endif + + // Implementation of C++17's std::invoke_result_t. + // diff --git a/packages/c/cef/xmake.lua b/packages/c/cef/xmake.lua index ae541427e..67b54b367 100644 --- a/packages/c/cef/xmake.lua +++ b/packages/c/cef/xmake.lua @@ -32,6 +32,8 @@ package("cef") add_configs("vs_runtime", {description = "Set vs compiler runtime.", default = "MT", type = "string", readonly = true}) end + add_patches("97.7.9", path.join(os.scriptdir(), "patches", "97.1.9", "msvc_cpp20.patch"), "28562870ae1dd30eaa42a9297ad76eae8f80422cdf3638674c80e51768fb520d") + add_configs("shared", {description = "Build shared library.", default = true, type = "boolean", readonly = true}) if is_plat("windows") then