X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=blobdiff_plain;f=src%2Fegl%2Fegl-entrypoint-check.py;h=332578f44c274a3a142df7b1214744c66105c502;hp=1e876615028aff0dc80c60ff049d5552b6ca4fe9;hb=HEAD;hpb=ba18b968e8745119f66f293a9366c6708c4ed3b8 diff --git a/src/egl/egl-entrypoint-check.py b/src/egl/egl-entrypoint-check.py index 1e876615028..332578f44c2 100644 --- a/src/egl/egl-entrypoint-check.py +++ b/src/egl/egl-entrypoint-check.py @@ -1,10 +1,63 @@ #!/usr/bin/env python import argparse +from generate.eglFunctionList import EGL_FUNCTIONS as GLVND_ENTRYPOINTS + 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') @@ -20,17 +73,11 @@ def main(): 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()