egl/wayland: simplify dri2_initialize_wayland()
[mesa.git] / src / egl / egl-entrypoint-check.py
index 1e876615028aff0dc80c60ff049d5552b6ca4fe9..332578f44c274a3a142df7b1214744c66105c502 100644 (file)
@@ -1,10 +1,63 @@
 #!/usr/bin/env python
 
 import argparse
 #!/usr/bin/env python
 
 import argparse
+from generate.eglFunctionList import EGL_FUNCTIONS as GLVND_ENTRYPOINTS
+
 
 PREFIX = 'EGL_ENTRYPOINT('
 SUFFIX = ')'
 
 
 PREFIX = 'EGL_ENTRYPOINT('
 SUFFIX = ')'
 
+
+# These entrypoints should *not* be in the GLVND entrypoints
+GLVND_EXCLUDED_ENTRYPOINTS = [
+        # EGL_KHR_debug
+        'eglDebugMessageControlKHR',
+        'eglQueryDebugKHR',
+        'eglLabelObjectKHR',
+    ]
+
+
+def check_entrypoint_sorted(entrypoints):
+    print('Checking that EGL API entrypoints are sorted...')
+
+    for i, _ in enumerate(entrypoints):
+        # Can't compare the first one with the previous
+        if i == 0:
+            continue
+        if entrypoints[i - 1] > entrypoints[i]:
+            print('ERROR: ' + entrypoints[i] + ' should come before ' + entrypoints[i - 1])
+            exit(1)
+
+    print('All good :)')
+
+
+def check_glvnd_entrypoints(egl_entrypoints, glvnd_entrypoints):
+    print('Checking the GLVND entrypoints against the plain EGL ones...')
+    success = True
+
+    for egl_entrypoint in egl_entrypoints:
+        if egl_entrypoint in GLVND_EXCLUDED_ENTRYPOINTS:
+            continue
+        if egl_entrypoint not in glvnd_entrypoints:
+            print('ERROR: ' + egl_entrypoint + ' is missing from the GLVND entrypoints (src/egl/generate/eglFunctionList.py)')
+            success = False
+
+    for glvnd_entrypoint in glvnd_entrypoints:
+        if glvnd_entrypoint not in egl_entrypoints:
+            print('ERROR: ' + glvnd_entrypoint + ' is missing from the plain EGL entrypoints (src/egl/main/eglentrypoint.h)')
+            success = False
+
+    for glvnd_entrypoint in GLVND_EXCLUDED_ENTRYPOINTS:
+        if glvnd_entrypoint in glvnd_entrypoints:
+            print('ERROR: ' + glvnd_entrypoint + ' is should *not* be in the GLVND entrypoints (src/egl/generate/eglFunctionList.py)')
+            success = False
+
+    if success:
+        print('All good :)')
+    else:
+        exit(1)
+
+
 def main():
     parser = argparse.ArgumentParser()
     parser.add_argument('header')
 def main():
     parser = argparse.ArgumentParser()
     parser.add_argument('header')
@@ -20,17 +73,11 @@ def main():
             assert line.endswith(SUFFIX)
             entrypoints.append(line[len(PREFIX):-len(SUFFIX)])
 
             assert line.endswith(SUFFIX)
             entrypoints.append(line[len(PREFIX):-len(SUFFIX)])
 
-    print('Checking EGL API entrypoints are sorted')
+    check_entrypoint_sorted(entrypoints)
 
 
-    for i, _ in enumerate(entrypoints):
-        # Can't compare the first one with the previous
-        if i == 0:
-            continue
-        if entrypoints[i - 1] > entrypoints[i]:
-            print('ERROR: ' + entrypoints[i] + ' should come before ' + entrypoints[i - 1])
-            exit(1)
+    glvnd_entrypoints = [x[0] for x in GLVND_ENTRYPOINTS]
 
 
-    print('All good :)')
+    check_glvnd_entrypoints(entrypoints, glvnd_entrypoints)
 
 if __name__ == '__main__':
     main()
 
 if __name__ == '__main__':
     main()