From 788c799af2c1e8e8e9aa0ddb51341c5f0eb94eaa Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 25 Sep 2016 23:03:18 +0200
Subject: [PATCH 03/10] Fix dynamic libraries

- Create import libs
- Use correct *.def file
---
 src/libEGL.gypi                     |   6 +
 src/libEGL/libEGL_mingw32.def       |  53 ++++++
 src/libGLESv2.gypi                  |   6 +
 src/libGLESv2/libGLESv2_mingw32.def | 315 ++++++++++++++++++++++++++++++++++++
 4 files changed, 380 insertions(+)
 create mode 100644 src/libEGL/libEGL_mingw32.def
 create mode 100644 src/libGLESv2/libGLESv2_mingw32.def

diff --git a/src/libEGL.gypi b/src/libEGL.gypi
index 86158a6..05a2c24 100644
--- a/src/libEGL.gypi
+++ b/src/libEGL.gypi
@@ -34,6 +34,12 @@
                 {
                     'msvs_requires_importlibrary' : 'true',
                 }],
+                ['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' ],
+                }],
             ],
         },
     ],
diff --git a/src/libEGL/libEGL_mingw32.def b/src/libEGL/libEGL_mingw32.def
new file mode 100644
index 0000000..6cecc64
--- /dev/null
+++ b/src/libEGL/libEGL_mingw32.def
@@ -0,0 +1,53 @@
+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
+
+    ; Extensions
+    eglGetPlatformDisplayEXT@12         @35
+    eglQuerySurfacePointerANGLE@16      @36
+    eglPostSubBufferNV@24               @37
+
+    ; 1.5 entry points
+    eglCreateSync@12                    @38
+    eglDestroySync@8                    @39
+    eglClientWaitSync@20                @40
+    eglGetSyncAttrib@16                 @41
+    eglCreateImage@20                   @42
+    eglDestroyImage@8                   @43
+    eglGetPlatformDisplay@12            @44
+    eglCreatePlatformWindowSurface@16   @45
+    eglCreatePlatformPixmapSurface@16   @46
+    eglWaitSync@12                      @47
diff --git a/src/libGLESv2.gypi b/src/libGLESv2.gypi
index d0dc945..325ffc8 100644
--- a/src/libGLESv2.gypi
+++ b/src/libGLESv2.gypi
@@ -1067,6 +1067,12 @@
                 {
                     'msvs_requires_importlibrary' : 'true',
                 }],
+                ['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' ],
+                }],
             ],
         },
     ],
diff --git a/src/libGLESv2/libGLESv2_mingw32.def b/src/libGLESv2/libGLESv2_mingw32.def
new file mode 100644
index 0000000..7a56196
--- /dev/null
+++ b/src/libGLESv2/libGLESv2_mingw32.def
@@ -0,0 +1,315 @@
+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
+    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
+    glDrawBuffersEXT@8                       @179
+    glMapBufferOES@8                         @285
+    glUnmapBufferOES@4                       @286
+    glGetBufferPointervOES@12                @287
+    glMapBufferRangeEXT@16                   @288
+    glFlushMappedBufferRangeEXT@12           @289
+    glDiscardFramebufferEXT@12               @293
+    glInsertEventMarkerEXT@8                 @294
+    glPushGroupMarkerEXT@8                   @295
+    glPopGroupMarkerEXT                      @296
+    glEGLImageTargetTexture2DOES@8           @297
+    glEGLImageTargetRenderbufferStorageOES@8 @298
+    glBindVertexArrayOES@4                   @299
+    glDeleteVertexArraysOES@8                @300
+    glGenVertexArraysOES@8                   @301
+    glIsVertexArrayOES@4                     @302
+    glDebugMessageControlKHR@24              @303
+    glDebugMessageInsertKHR@24               @304
+    glDebugMessageCallbackKHR@8              @305
+    glGetDebugMessageLogKHR@32               @306
+    glPushDebugGroupKHR@16                   @307
+    glPopDebugGroupKHR                       @308
+    glObjectLabelKHR@16                      @309
+    glGetObjectLabelKHR@20                   @310
+    glObjectPtrLabelKHR@12                   @311
+    glGetObjectPtrLabelKHR@16                @312
+    glGetPointervKHR@8                       @313
+    glQueryCounterEXT@8                      @314
+    glGetQueryObjectivEXT@12                 @315
+    glGetQueryObjecti64vEXT@12               @316
+    glGetQueryObjectui64vEXT@12              @317
+
+    ; GLES 3.0 Functions
+    glReadBuffer@4                           @180
+    glDrawRangeElements@24                   @181
+    glTexImage3D@40                          @182
+    glTexSubImage3D@44                       @183
+    glCopyTexSubImage3D@36                   @184
+    glCompressedTexImage3D@36                @185
+    glCompressedTexSubImage3D@44             @186
+    glGenQueries@8                           @187
+    glDeleteQueries@8                        @188
+    glIsQuery@4                              @189
+    glBeginQuery@8                           @190
+    glEndQuery@4                             @191
+    glGetQueryiv@12                          @192
+    glGetQueryObjectuiv@12                   @193
+    glUnmapBuffer@4                          @194
+    glGetBufferPointerv@12                   @195
+    glDrawBuffers@8                          @196
+    glUniformMatrix2x3fv@16                  @197
+    glUniformMatrix3x2fv@16                  @198
+    glUniformMatrix2x4fv@16                  @199
+    glUniformMatrix4x2fv@16                  @200
+    glUniformMatrix3x4fv@16                  @201
+    glUniformMatrix4x3fv@16                  @202
+    glBlitFramebuffer@40                     @203
+    glRenderbufferStorageMultisample@20      @204
+    glFramebufferTextureLayer@20             @205
+    glMapBufferRange@16                      @206
+    glFlushMappedBufferRange@12              @207
+    glBindVertexArray@4                      @208
+    glDeleteVertexArrays@8                   @209
+    glGenVertexArrays@8                      @210
+    glIsVertexArray@4                        @211
+    glGetIntegeri_v@12                       @212
+    glBeginTransformFeedback@4               @213
+    glEndTransformFeedback@0                 @214
+    glBindBufferRange@20                     @215
+    glBindBufferBase@12                      @216
+    glTransformFeedbackVaryings@16           @217
+    glGetTransformFeedbackVarying@28         @218
+    glVertexAttribIPointer@20                @219
+    glGetVertexAttribIiv@12                  @220
+    glGetVertexAttribIuiv@12                 @221
+    glVertexAttribI4i@20                     @222
+    glVertexAttribI4ui@20                    @223
+    glVertexAttribI4iv@8                     @224
+    glVertexAttribI4uiv@8                    @225
+    glGetUniformuiv@12                       @226
+    glGetFragDataLocation@8                  @227
+    glUniform1ui@8                           @228
+    glUniform2ui@12                          @229
+    glUniform3ui@16                          @230
+    glUniform4ui@20                          @231
+    glUniform1uiv@12                         @232
+    glUniform2uiv@12                         @233
+    glUniform3uiv@12                         @234
+    glUniform4uiv@12                         @235
+    glClearBufferiv@12                       @236
+    glClearBufferuiv@12                      @237
+    glClearBufferfv@12                       @238
+    glClearBufferfi@16                       @239
+    glGetStringi@8                           @240
+    glCopyBufferSubData@20                   @241
+    glGetUniformIndices@16                   @242
+    glGetActiveUniformsiv@20                 @243
+    glGetUniformBlockIndex@8                 @244
+    glGetActiveUniformBlockiv@16             @245
+    glGetActiveUniformBlockName@20           @246
+    glUniformBlockBinding@12                 @247
+    glDrawArraysInstanced@16                 @248
+    glDrawElementsInstanced@20               @249
+    glFenceSync@8                            @250
+    glIsSync@4                               @251
+    glDeleteSync@4                           @252
+    glClientWaitSync@16                      @253
+    glWaitSync@16                            @254
+    glGetInteger64v@8                        @255
+    glGetSynciv@20                           @256
+    glGetInteger64i_v@12                     @257
+    glGetBufferParameteri64v@12              @258
+    glGenSamplers@8                          @259
+    glDeleteSamplers@8                       @260
+    glIsSampler@4                            @261
+    glBindSampler@8                          @262
+    glSamplerParameteri@12                   @263
+    glSamplerParameteriv@12                  @264
+    glSamplerParameterf@12                   @265
+    glSamplerParameterfv@12                  @266
+    glGetSamplerParameteriv@12               @267
+    glGetSamplerParameterfv@12               @268
+    glVertexAttribDivisor@8                  @269
+    glBindTransformFeedback@8                @270
+    glDeleteTransformFeedbacks@8             @271
+    glGenTransformFeedbacks@8                @272
+    glIsTransformFeedback@4                  @273
+    glPauseTransformFeedback@0               @274
+    glResumeTransformFeedback@0              @275
+    glGetProgramBinary@20                    @276
+    glProgramBinary@16                       @277
+    glProgramParameteri@12                   @278
+    glInvalidateFramebuffer@12               @279
+    glInvalidateSubFramebuffer@28            @280
+    glTexStorage2D@20                        @281
+    glTexStorage3D@24                        @282
+    glGetInternalformativ@20                 @283
+
+    ; ANGLE Platform Implementation
+    ANGLEPlatformCurrent                     @290
+    ANGLEPlatformInitialize                  @291
+    ANGLEPlatformShutdown                    @292
-- 
2.10.2

