Add angleproject-git package.

This commit is contained in:
Alexpux
2014-02-07 15:48:28 +04:00
parent b80b217ca9
commit 85db326666
6 changed files with 483 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=angleproject
_mingw_suff=mingw-w64-${CARCH}
pkgname="${_mingw_suff}-${_realname}-git"
pkgver=1.2.0.r2453
pkgrel=1
pkgdesc='Angle project built from git source (mingw-w64)'
arch=('any')
url='http://code.google.com/p/angleproject/'
license=('LGPLv2+')
groups=('mingw-w64')
depends=()
makedepends=("${_mingw_suff}-gcc" 'gyp-svn' 'git')
provides=("${_mingw_suff}-angleproject")
conflicts=("${_mingw_suff}-angleproject")
options=('!strip' 'staticlibs')
source=('angleproject::git+https://chromium.googlesource.com/angle/angle'
'angleproject-include-import-library-and-use-def-file.patch'
'angleproject-fix-mingw-compatibility.patch'
'angleproject-export-shader-symbols.patch'
'angleproject-fix-trace_event.patch'
'angleproject-fix-renderer9-stencilformat.patch')
md5sums=('SKIP'
'11bd81ef12630aa2dc1f325f0b593de5'
'10b197b483a543fcf7e1ae5ec379848f'
'079e79c52e83d4f91b7eebf4d350980c'
'59a3d60f5b1b6676056444db8a7883fe'
'5f30f3a3c668e4a76920a71e0dddc87d')
pkgver() {
cd "$srcdir/angleproject"
head -n 4 src/common/version.h | sed -e 's/BUILD_REVISION /BUILD_REVISION r/' -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/'
}
build() {
cd "${srcdir}"/angleproject
export PYTHON=/usr/bin/python2
# Make sure an import library is created and the correct .def file is used during the build
patch -p0 -i "${srcdir}"/angleproject-include-import-library-and-use-def-file.patch
# .def pieces taken from http://qt.gitorious.org/qt/qtbase/commit/b2c44985e740d0a0ea86b7b9f4cc849258ac2340
patch -p0 -i "${srcdir}"/angleproject-fix-mingw-compatibility.patch
# WebKit depends on symbols which are used in the static library called translator
# This static library is linked into the libGLESv2 shared library
# To allow building WebKit export the required symbols in the libGLESv2 shared library
patch -p0 -i "${srcdir}"/angleproject-export-shader-symbols.patch
# Fix missing methods in trace_event.h
patch -p0 -i "${srcdir}"/angleproject-fix-trace_event.patch
# Fix stencil format method in renderer9_utils.cpp
patch -p0 -i "${srcdir}"/angleproject-fix-renderer9-stencilformat.patch
export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
sed -i -e 's_python _python2 _g' -e 's_"python"_"python2"_g' -e "s_'python'_'python2'_g" -e 's_/usr/bin/python_/usr/bin/python2_g' $(find -type f)
sed -i -e 's|vsprintf_s|vsprintf|g' $(find . \( -name '*.h' -or -name '*.cpp' \) -and -type f)
mkdir -p build-${MINGW_CHOST} && pushd build-${MINGW_CHOST}
if [ "${MINGW_CHOST}" = "i686-w64-mingw32" ]
then
_target="win32"
else
_target="win64"
fi
gyp -D OS=win -D MSVS_VERSION=2010e -D TARGET=$_target --depth . -I ../build/common.gypi ../src/build_angle.gyp
# Make sure the correct libraries are linked in
#sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -static -lmsvcrt'@ ../src/libGLESv2.target.mk
sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk
sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -L. -lGLESv2'@ ../src/libEGL.target.mk
#sed -i s@'^LIBS :='@'LIBS := -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive -L. -lGLESv2 out/Debug/obj.target/src/compiler/translator/ShaderLang.o out/Debug/obj.target/src/third_party/murmurhash/MurmurHash3.o out/Debug/src/libtranslator.a out/Debug/src/libpreprocessor.a'@ ../src/libEGL.target.mk
#sed -i s@'^LIBS :='@'LIBS := -static -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive -L. libGLESv2.dll.a out/Debug/obj.target/src/compiler/translator/ShaderLang.o out/Debug/obj.target/src/third_party/murmurhash/MurmurHash3.o out/Debug/src/libtranslator.a out/Debug/src/libpreprocessor.a'@ ../src/libEGL.target.mk
# Fix linking of libtranslator.a
sed -i \
-e s@'$(obj).target/$(TARGET)/../src/common/event_tracer.o'@@g \
-e s@'$(obj).target/$(TARGET)/../src/common/RefCountObject.o'@@g \
-e s@'$(obj).target/$(TARGET)/../src/common/debug.o'@@g \
"${srcdir}"/angleproject/src/translator{,_static}.target.mk
make V=1 CXXFLAGS="-std=c++11 -msse2 -DUNICODE -D_UNICODE"
${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \
out/Debug/obj.target/libGLESv2/../src/common/*.o \
out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/*.o \
out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d9/*.o \
out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d11/*.o \
out/Debug/obj.target/libGLESv2/../src/libGLESv2/*.o \
#out/Debug/obj.target/../src/libtranslator.a \
#out/Debug/obj.target/../src/libpreprocessor.a
${MINGW_PREFIX}/bin/ar rcs libEGL.a \
out/Debug/obj.target/libEGL/../src/common/*.o \
out/Debug/obj.target/libEGL/../src/libEGL/*.o
popd
}
package() {
cd "${srcdir}"/angleproject
pushd build-${MINGW_CHOST}
mkdir -p "${pkgdir}${MINGW_PREFIX}"/{bin,lib,include}
install out/Debug/src/libGLESv2.so "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll
install out/Debug/src/libEGL.so "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll
${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/bin/*.dll
install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/
install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/
${MINGW_PREFIX}/bin/strip --strip-debug "${pkgdir}${MINGW_PREFIX}"/lib/libEGL.a
install libEGL.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
install libGLESv2.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/lib/*.dll.a
cp -Rv ../include/* "${pkgdir}${MINGW_PREFIX}"/include/
popd
}

View File

@@ -0,0 +1,34 @@
--- src/libGLESv2/libGLESv2.def.orig 2014-01-06 11:49:13.494061976 +0100
+++ src/libGLESv2/libGLESv2.def 2014-01-06 11:49:15.984075067 +0100
@@ -186,3 +186,13 @@ EXPORTS
; Setting up TRACE macro callbacks
SetTraceFunctionPointers @180
+
+ ; WebKit dependencies
+ ShInitBuiltInResources @200 NONAME
+ ShInitialize @201 NONAME
+ ShDestruct @202 NONAME
+ ShGetInfo @203 NONAME
+ ShGetInfoLog @204 NONAME
+ ShGetObjectCode @207 NONAME
+ ShCompile @208 NONAME
+ ShConstructCompiler @209 NONAME
--- src/libGLESv2/libGLESv2_mingw32.def.orig 2014-01-06 13:17:51.686441162 +0100
+++ src/libGLESv2/libGLESv2_mingw32.def 2014-01-06 13:17:21.853045374 +0100
@@ -180,3 +180,15 @@ EXPORTS
glGetCurrentContext @147 NONAME
glGetProcAddress@4 @148 NONAME
glBindTexImage@4 @158 NONAME
+ glCreateRenderer @177 NONAME
+ glDestroyRenderer @178 NONAME
+
+ ; WebKit dependencies
+ ShInitBuiltInResources @200 NONAME
+ ShInitialize @201 NONAME
+ ShDestruct @202 NONAME
+ ShGetInfo @203 NONAME
+ ShGetInfoLog @204 NONAME
+ ShGetObjectCode @207 NONAME
+ ShCompile @208 NONAME
+ ShConstructCompiler @209 NONAME

View File

@@ -0,0 +1,224 @@
--- /dev/null
+++ src/libEGL/libEGL_mingw32.def
@@ -0,0 +1,36 @@
+LIBRARY libEGL
+EXPORTS
+ eglBindAPI@4 @14
+ eglBindTexImage@12 @20
+ eglChooseConfig@20 @7
+ eglCopyBuffers@12 @33
+ eglCreateContext@16 @23
+ eglCreatePbufferFromClientBuffer@20 @18
+ eglCreatePbufferSurface@12 @10
+ eglCreatePixmapSurface@16 @11
+ eglCreateWindowSurface@16 @9
+ eglDestroyContext@8 @24
+ eglDestroySurface@8 @12
+ eglGetConfigAttrib@16 @8
+ eglGetConfigs@16 @6
+ eglGetCurrentContext@0 @26
+ eglGetCurrentDisplay@0 @28
+ eglGetCurrentSurface@4 @27
+ eglGetDisplay@4 @2
+ eglGetError@0 @1
+ eglGetProcAddress@4 @34
+ eglInitialize@12 @3
+ eglMakeCurrent@16 @25
+ eglQueryAPI@0 @15
+ eglQueryContext@16 @29
+ eglQueryString@8 @5
+ eglQuerySurface@16 @13
+ eglReleaseTexImage@12 @21
+ eglReleaseThread@0 @17
+ eglSurfaceAttrib@16 @19
+ eglSwapBuffers@8 @32
+ eglSwapInterval@8 @22
+ eglTerminate@4 @4
+ eglWaitClient@0 @16
+ eglWaitGL@0 @30
+ eglWaitNative@4 @31
--- /dev/null
+++ src/libGLESv2/libGLESv2_mingw32.def
@@ -0,0 +1,182 @@
+LIBRARY libGLESv2
+EXPORTS
+ glActiveTexture@4 @1
+ glAttachShader@8 @2
+ glBindAttribLocation@12 @3
+ glBindBuffer@8 @4
+ glBindFramebuffer@8 @5
+ glBindRenderbuffer@8 @6
+ glBindTexture@8 @7
+ glBlendColor@16 @8
+ glBlendEquation@4 @9
+ glBlendEquationSeparate@8 @10
+ glBlendFunc@8 @11
+ glBlendFuncSeparate@16 @12
+ glBufferData@16 @13
+ glBufferSubData@16 @14
+ glCheckFramebufferStatus@4 @15
+ glClear@4 @16
+ glClearColor@16 @17
+ glClearDepthf@4 @18
+ glClearStencil@4 @19
+ glColorMask@16 @20
+ glCompileShader@4 @21
+ glCompressedTexImage2D@32 @22
+ glCompressedTexSubImage2D@36 @23
+ glCopyTexImage2D@32 @24
+ glCopyTexSubImage2D@32 @25
+ glCreateProgram@0 @26
+ glCreateShader@4 @27
+ glCullFace@4 @28
+ glDeleteBuffers@8 @29
+ glDeleteFramebuffers@8 @30
+ glDeleteProgram@4 @32
+ glDeleteRenderbuffers@8 @33
+ glDeleteShader@4 @34
+ glDeleteTextures@8 @31
+ glDepthFunc@4 @36
+ glDepthMask@4 @37
+ glDepthRangef@8 @38
+ glDetachShader@8 @35
+ glDisable@4 @39
+ glDisableVertexAttribArray@4 @40
+ glDrawArrays@12 @41
+ glDrawElements@16 @42
+ glEnable@4 @43
+ glEnableVertexAttribArray@4 @44
+ glFinish@0 @45
+ glFlush@0 @46
+ glFramebufferRenderbuffer@16 @47
+ glFramebufferTexture2D@20 @48
+ glFrontFace@4 @49
+ glGenBuffers@8 @50
+ glGenFramebuffers@8 @52
+ glGenRenderbuffers@8 @53
+ glGenTextures@8 @54
+ glGenerateMipmap@4 @51
+ glGetActiveAttrib@28 @55
+ glGetActiveUniform@28 @56
+ glGetAttachedShaders@16 @57
+ glGetAttribLocation@8 @58
+ glGetBooleanv@8 @59
+ glGetBufferParameteriv@12 @60
+ glGetError@0 @61
+ glGetFloatv@8 @62
+ glGetFramebufferAttachmentParameteriv@16 @63
+ glGetIntegerv@8 @64
+ glGetProgramInfoLog@16 @66
+ glGetProgramiv@12 @65
+ glGetRenderbufferParameteriv@12 @67
+ glGetShaderInfoLog@16 @69
+ glGetShaderPrecisionFormat@16 @70
+ glGetShaderSource@16 @71
+ glGetShaderiv@12 @68
+ glGetString@4 @72
+ glGetTexParameterfv@12 @73
+ glGetTexParameteriv@12 @74
+ glGetUniformLocation@8 @77
+ glGetUniformfv@12 @75
+ glGetUniformiv@12 @76
+ glGetVertexAttribPointerv@12 @80
+ glGetVertexAttribfv@12 @78
+ glGetVertexAttribiv@12 @79
+ glHint@8 @81
+ glIsBuffer@4 @82
+ glIsEnabled@4 @83
+ glIsFramebuffer@4 @84
+ glIsProgram@4 @85
+ glIsRenderbuffer@4 @86
+ glIsShader@4 @87
+ glIsTexture@4 @88
+ glLineWidth@4 @89
+ glLinkProgram@4 @90
+ glPixelStorei@8 @91
+ glPolygonOffset@8 @92
+ glReadPixels@28 @93
+ glReleaseShaderCompiler@0 @94
+ glRenderbufferStorage@16 @95
+ glSampleCoverage@8 @96
+ glScissor@16 @97
+ glShaderBinary@20 @98
+ glShaderSource@16 @99
+ glStencilFunc@12 @100
+ glStencilFuncSeparate@16 @101
+ glStencilMask@4 @102
+ glStencilMaskSeparate@8 @103
+ glStencilOp@12 @104
+ glStencilOpSeparate@16 @105
+ glTexImage2D@36 @106
+ glTexParameterf@12 @107
+ glTexParameterfv@12 @108
+ glTexParameteri@12 @109
+ glTexParameteriv@12 @110
+ glTexSubImage2D@36 @111
+ glUniform1f@8 @112
+ glUniform1fv@12 @113
+ glUniform1i@8 @114
+ glUniform1iv@12 @115
+ glUniform2f@12 @116
+ glUniform2fv@12 @117
+ glUniform2i@12 @118
+ glUniform2iv@12 @119
+ glUniform3f@16 @120
+ glUniform3fv@12 @121
+ glUniform3i@16 @122
+ glUniform3iv@12 @123
+ glUniform4f@20 @124
+ glUniform4fv@12 @125
+ glUniform4i@20 @126
+ glUniform4iv@12 @127
+ glUniformMatrix2fv@16 @128
+ glUniformMatrix3fv@16 @129
+ glUniformMatrix4fv@16 @130
+ glUseProgram@4 @131
+ glValidateProgram@4 @132
+ glVertexAttrib1f@8 @133
+ glVertexAttrib1fv@8 @134
+ glVertexAttrib2f@12 @135
+ glVertexAttrib2fv@8 @136
+ glVertexAttrib3f@16 @137
+ glVertexAttrib3fv@8 @138
+ glVertexAttrib4f@20 @139
+ glVertexAttrib4fv@8 @140
+ glVertexAttribPointer@24 @141
+ glViewport@16 @142
+
+ ; Extensions
+ glTexImage3DOES@40 @143
+ glBlitFramebufferANGLE@40 @149
+ glRenderbufferStorageMultisampleANGLE@20 @150
+ glDeleteFencesNV@8 @151
+ glFinishFenceNV@4 @152
+ glGenFencesNV@8 @153
+ glGetFenceivNV@12 @154
+ glIsFenceNV@4 @155
+ glSetFenceNV@8 @156
+ glTestFenceNV@4 @157
+ glGetTranslatedShaderSourceANGLE@16 @159
+ glTexStorage2DEXT@20 @160
+ glGetGraphicsResetStatusEXT@0 @161
+ glReadnPixelsEXT@32 @162
+ glGetnUniformfvEXT@16 @163
+ glGetnUniformivEXT@16 @164
+ glGenQueriesEXT@8 @165
+ glDeleteQueriesEXT@8 @166
+ glIsQueryEXT@4 @167
+ glBeginQueryEXT@8 @168
+ glEndQueryEXT@4 @169
+ glGetQueryivEXT@12 @170
+ glGetQueryObjectuivEXT@12 @171
+ glVertexAttribDivisorANGLE@8 @172
+ glDrawArraysInstancedANGLE@16 @173
+ glDrawElementsInstancedANGLE@20 @174
+ glProgramBinaryOES@16 @175
+ glGetProgramBinaryOES@20 @176
+
+ ; EGL dependencies
+ glCreateContext @144 NONAME
+ glDestroyContext @145 NONAME
+ glMakeCurrent @146 NONAME
+ glGetCurrentContext @147 NONAME
+ glGetProcAddress@4 @148 NONAME
+ glBindTexImage@4 @158 NONAME

View File

@@ -0,0 +1,23 @@
--- src.orig/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:45.401522829 +0100
+++ src/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:52.004935151 +0100
@@ -13,6 +13,7 @@
#include "libGLESv2/Context.h"
#include "common/debug.h"
+#include <stdio.h>
namespace gl_d3d9
{
@@ -381,9 +382,12 @@ GLenum ConvertDepthStencilFormat(D3DFORM
return GL_DEPTH_COMPONENT16;
case D3DFMT_D24S8:
return GL_DEPTH24_STENCIL8_OES;
+ case D3DFMT_D32:
+ return GL_DEPTH_COMPONENT16;
case D3DFMT_UNKNOWN:
return GL_NONE;
default:
+ printf("unknown D3DFORMAT (stencil format): %d\n", (int)format);
UNREACHABLE();
}

View File

@@ -0,0 +1,28 @@
--- src/third_party/trace_event/trace_event.h.orig 2014-01-06 10:40:41.106093009 +0100
+++ src/third_party/trace_event/trace_event.h 2014-01-06 10:40:09.310989874 +0100
@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0;
class TraceID {
public:
explicit TraceID(const void* id, unsigned char* flags) :
- m_data(static_cast<unsigned long long>(reinterpret_cast<unsigned long>(id)))
+ m_data((unsigned long long)id)
{
*flags |= TRACE_EVENT_FLAG_MANGLE_ID;
}
@@ -806,14 +806,14 @@ public:
}
// FIXME: Make load/store to traceSamplingState[] thread-safe and atomic.
- static inline const char* current()
+ /*static inline const char* current()
{
return reinterpret_cast<const char*>(*gl::traceSamplingState[BucketNumber]);
}
static inline void set(const char* categoryAndName)
{
*gl::traceSamplingState[BucketNumber] = reinterpret_cast<long>(const_cast<char*>(categoryAndName));
- }
+ }*/
private:
const char* m_previousState;

View File

@@ -0,0 +1,45 @@
--- src.orig/libEGL.gypi 2014-01-11 12:17:37.971020837 +0100
+++ src/libEGL.gypi 2014-01-11 12:20:05.406870084 +0100
@@ -13,6 +13,14 @@
'target_name': 'libEGL',
'type': 'shared_library',
'dependencies': [ 'libGLESv2' ],
+ 'conditions': [
+ ['TARGET=="win32"', {
+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL_mingw32.def' ],
+ }],
+ ['TARGET=="win64"', {
+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL.def' ],
+ }],
+ ],
'include_dirs':
[
'.',
--- src.orig/libGLESv2.gypi 2014-01-11 12:17:37.971020837 +0100
+++ src/libGLESv2.gypi 2014-01-11 12:19:22.916166993 +0100
@@ -23,6 +23,14 @@
'target_name': 'libGLESv2',
'type': 'shared_library',
'dependencies': [ 'translator', 'copy_compiler_dll' ],
+ 'conditions': [
+ ['TARGET=="win32"', {
+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2_mingw32.def' ],
+ }],
+ ['TARGET=="win64"', {
+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2.def' ],
+ }],
+ ],
'include_dirs':
[
'.',
--- src.orig/angle.gypi 2014-01-11 12:28:41.414124056 +0100
+++ src/angle.gypi 2014-01-11 12:31:06.065777743 +0100
@@ -38,7 +38,7 @@
'message': 'Copying D3D Compiler DLL...',
'inputs': [ 'copy_compiler_dll.bat' ],
'outputs': [ '<(PRODUCT_DIR)/D3DCompiler_46.dll' ],
- 'action': ["<(angle_relative_src_path)copy_compiler_dll.bat", "$(PlatformName)", "<(windows_sdk_path)", "<(PRODUCT_DIR)" ],
+ 'action': ["touch", '<(PRODUCT_DIR)/D3DCompiler_46.dll' ],
}
] #actions
},