summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartchus2016-03-31 13:55:14 +0200
committerMartchus2016-03-31 13:55:14 +0200
commit79caab95bf1dc3deb6b5ddb9d0385158b37a926c (patch)
tree31cef88750e2259a849f919e65a832313c4772ef
parentaa9460ab70365588239909970c3c2471230e91ce (diff)
downloadaur-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--.SRCINFO10
-rw-r--r--PKGBUILD20
-rw-r--r--provide_mbstowcs_s_for_xp.patch57
3 files changed, 77 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2ee14bf1a48e..0550e37da6fb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 9639a44d5185..6d41d036df42 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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()