diff options
author | Martchus | 2016-03-31 13:55:14 +0200 |
---|---|---|
committer | Martchus | 2016-03-31 13:55:14 +0200 |
commit | 79caab95bf1dc3deb6b5ddb9d0385158b37a926c (patch) | |
tree | 31cef88750e2259a849f919e65a832313c4772ef | |
parent | aa9460ab70365588239909970c3c2471230e91ce (diff) | |
download | aur-79caab95bf1dc3deb6b5ddb9d0385158b37a926c.tar.gz |
maintain XP compatibility
- mbstowcs_s seems to be unavailable under XP
- provided own implementation of mbstowcs_s
- updated to commit a3d333c by the way
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | PKGBUILD | 20 | ||||
-rw-r--r-- | provide_mbstowcs_s_for_xp.patch | 57 |
3 files changed, 77 insertions, 10 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Sun Mar 13 18:04:31 UTC 2016 +# Thu Mar 31 11:54:54 UTC 2016 pkgbase = mingw-w64-angleproject pkgdesc = ANGLE project (mingw-w64) - pkgver = 2.1.r5637.0e49e6b - pkgrel = 2 + pkgver = 2.1.r5658.a3d333c + pkgrel = 1 url = https://chromium.googlesource.com/angle/angle/+/master/README.md arch = any license = BSD @@ -15,18 +15,20 @@ pkgbase = mingw-w64-angleproject options = !strip options = !buildflags options = staticlibs - source = angleproject::git+https://chromium.googlesource.com/angle/angle#commit=0e49e6b + source = angleproject::git+https://chromium.googlesource.com/angle/angle#commit=a3d333c source = additional-mingw-header::git+https://github.com/Martchus/additional-mingw-header.git#commit=7a8f394 source = angleproject-include-import-library-and-use-def-file.patch source = libEGL_mingw32.def source = libGLESv2_mingw32.def source = entry_points_shader.cpp + source = provide_mbstowcs_s_for_xp.patch sha256sums = SKIP sha256sums = SKIP sha256sums = 895c62846e6784dcc33171523a452cb474010d3fc9e7c351c27b8add4e9930ab sha256sums = fb04f30b904760d32c4c0b733d0a0b44359855db1fde9e7f5ca7d0b8b1be3e56 sha256sums = 3186d913a5fb483d2ae568068453e494d52df8f3f23f09d16afbbf916a63e4a4 sha256sums = ad347c9732f8897497aa51b8969a0e01cd8cd4ebb9a0e873a2ff47c210f1d46c + sha256sums = 57b16254c23dbd312dbbe0495a177690809b916c2f3d8b3bbf2dd405274d518c pkgname = mingw-w64-angleproject @@ -4,9 +4,12 @@ # Contributor: xantares # Contributor: jellysheep <max DOT mail AT dameweb DOT de> +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + pkgname=mingw-w64-angleproject -pkgver=2.1.r5637.0e49e6b -pkgrel=2 +pkgver=2.1.r5658.a3d333c +pkgrel=1 pkgdesc='ANGLE project (mingw-w64)' arch=('any') url='https://chromium.googlesource.com/angle/angle/+/master/README.md' @@ -14,18 +17,20 @@ license=('BSD') depends=('mingw-w64-crt') makedepends=('mingw-w64-gcc' 'git' 'gyp-git' 'python') options=('!strip' '!buildflags' 'staticlibs') -source=('angleproject::git+https://chromium.googlesource.com/angle/angle#commit=0e49e6b' +source=('angleproject::git+https://chromium.googlesource.com/angle/angle#commit=a3d333c' 'additional-mingw-header::git+https://github.com/Martchus/additional-mingw-header.git#commit=7a8f394' 'angleproject-include-import-library-and-use-def-file.patch' 'libEGL_mingw32.def' 'libGLESv2_mingw32.def' - 'entry_points_shader.cpp') + 'entry_points_shader.cpp' + 'provide_mbstowcs_s_for_xp.patch') sha256sums=('SKIP' 'SKIP' '895c62846e6784dcc33171523a452cb474010d3fc9e7c351c27b8add4e9930ab' 'fb04f30b904760d32c4c0b733d0a0b44359855db1fde9e7f5ca7d0b8b1be3e56' '3186d913a5fb483d2ae568068453e494d52df8f3f23f09d16afbbf916a63e4a4' - 'ad347c9732f8897497aa51b8969a0e01cd8cd4ebb9a0e873a2ff47c210f1d46c') + 'ad347c9732f8897497aa51b8969a0e01cd8cd4ebb9a0e873a2ff47c210f1d46c' + '57b16254c23dbd312dbbe0495a177690809b916c2f3d8b3bbf2dd405274d518c') _architectures="i686-w64-mingw32 x86_64-w64-mingw32" #pkgver() { @@ -45,7 +50,7 @@ prepare() { # provide 32-bit versions of *.def files cp ../libEGL_mingw32.def src/libEGL/ cp ../libGLESv2_mingw32.def src/libGLESv2/ - + # provide a file to export symbols declared in ShaderLang.h as part of libGLESv2.dll # (required to build Qt WebKit which uses shader interface) cp ../entry_points_shader.cpp src/libGLESv2/ @@ -57,6 +62,9 @@ prepare() { # and entry_points_shader.cpp is compiled patch -p1 -i "${srcdir}/angleproject-include-import-library-and-use-def-file.patch" + # provide own implementation of mbstowcs_s for Windows XP support + patch -p1 -i "${srcdir}/provide_mbstowcs_s_for_xp.patch" + # executing .bat scripts on Linux is a no-go so make this a no-op echo "" > src/copy_compiler_dll.bat chmod +x src/copy_compiler_dll.bat diff --git a/provide_mbstowcs_s_for_xp.patch b/provide_mbstowcs_s_for_xp.patch new file mode 100644 index 000000000000..2e721ccab90d --- /dev/null +++ b/provide_mbstowcs_s_for_xp.patch @@ -0,0 +1,57 @@ +--- angleproject/src/libANGLE/renderer/d3d/RendererD3D.cpp.orig 2016-03-23 19:22:28.000000000 +0100 ++++ angleproject/src/libANGLE/renderer/d3d/RendererD3D.cpp 2016-03-23 21:24:13.194525939 +0100 +@@ -25,9 +25,27 @@ + #include "libANGLE/State.h" + #include "libANGLE/VertexArray.h" + ++#include <string> ++#include <windows.h> ++ + namespace rx + { + ++inline std::wstring widen(const char *to_widen) ++{ ++ // determine length of original string ++ int len = strlen(to_widen); ++ if(!len) { ++ return std::wstring(); ++ } ++ // construct new string of required length ++ std::wstring ret(::MultiByteToWideChar(CP_UTF8, 0, to_widen, len, 0, 0), L'\0'); ++ // convert old string to new string ++ ::MultiByteToWideChar(CP_UTF8, 0, to_widen, len, &ret[0], (int)ret.length()); ++ // return new string ++ return ret; ++} ++ + namespace + { + // If we request a scratch buffer requesting a smaller size this many times, +@@ -639,24 +657,12 @@ + + void RendererD3D::insertEventMarker(GLsizei length, const char *marker) + { +- std::vector<wchar_t> wcstring (length + 1); +- size_t convertedChars = 0; +- errno_t err = mbstowcs_s(&convertedChars, wcstring.data(), length + 1, marker, _TRUNCATE); +- if (err == 0) +- { +- getAnnotator()->setMarker(wcstring.data()); +- } ++ getAnnotator()->setMarker(widen(marker).data()); + } + + void RendererD3D::pushGroupMarker(GLsizei length, const char *marker) + { +- std::vector<wchar_t> wcstring(length + 1); +- size_t convertedChars = 0; +- errno_t err = mbstowcs_s(&convertedChars, wcstring.data(), length + 1, marker, _TRUNCATE); +- if (err == 0) +- { +- getAnnotator()->beginEvent(wcstring.data()); +- } ++ getAnnotator()->beginEvent(widen(marker).data()); + } + + void RendererD3D::popGroupMarker() |