meson.build revision f71742df
1f71742dfSmrghas_gles1 = gles1_dep.found() 2f71742dfSmrghas_gles2 = gles2_dep.found() 3f71742dfSmrgbuild_x11_tests = build_glx and x11_dep.found() 4f71742dfSmrg 5f71742dfSmrgtest_cflags = common_cflags + [ 6f71742dfSmrg '-D_XOPEN_SOURCE', 7f71742dfSmrg '-D_POSIX_C_SOURCE=200809L', 8f71742dfSmrg] 9f71742dfSmrg 10f71742dfSmrg# Unconditionally built tests 11f71742dfSmrgtest('header_guards', 12f71742dfSmrg executable('header guards', 'headerguards.c', 13f71742dfSmrg c_args: common_cflags, 14f71742dfSmrg dependencies: libepoxy_dep, 15f71742dfSmrg include_directories: libepoxy_inc)) 16f71742dfSmrgtest('misc_defines', 17f71742dfSmrg executable('misc defines', 'miscdefines.c', 18f71742dfSmrg c_args: common_cflags, 19f71742dfSmrg dependencies: libepoxy_dep, 20f71742dfSmrg include_directories: libepoxy_inc)) 21f71742dfSmrgtest('khronos_typedefs', 22f71742dfSmrg executable('khronos typedefs', [ 23f71742dfSmrg 'khronos_typedefs.c', 24f71742dfSmrg 'khronos_typedefs.h', 25f71742dfSmrg 'khronos_typedefs_nonepoxy.c', 26f71742dfSmrg ], 27f71742dfSmrg c_args: common_cflags, 28f71742dfSmrg dependencies: libepoxy_dep, 29f71742dfSmrg include_directories: libepoxy_inc)) 30f71742dfSmrg 31f71742dfSmrgif build_egl and build_x11_tests 32f71742dfSmrg egl_common_sources = [ 'egl_common.h', 'egl_common.c', ] 33f71742dfSmrg egl_common_lib = static_library('egl_common', 34f71742dfSmrg sources: egl_common_sources, 35f71742dfSmrg dependencies: libepoxy_dep, 36f71742dfSmrg include_directories: libepoxy_inc, 37f71742dfSmrg c_args: common_cflags, 38f71742dfSmrg install: false) 39f71742dfSmrg 40f71742dfSmrg egl_tests = [ 41f71742dfSmrg [ 'egl_has_extension_nocontext', [], [ 'egl_has_extension_nocontext.c' ], true, ], 42f71742dfSmrg [ 'egl_gl', [], [ 'egl_gl.c' ], true, ], 43f71742dfSmrg [ 'egl_gles1_without_glx', [ '-DGLES_VERSION=1', ], [ 'egl_without_glx.c' ], has_gles1, ], 44f71742dfSmrg [ 'egl_gles2_without_glx', [ '-DGLES_VERSION=2', ], [ 'egl_without_glx.c' ], has_gles2, ], 45f71742dfSmrg ] 46f71742dfSmrg 47f71742dfSmrg foreach test: egl_tests 48f71742dfSmrg test_name = test[0] 49f71742dfSmrg test_source = test[2] 50f71742dfSmrg test_args = test[1] 51f71742dfSmrg test_run = test[3] 52f71742dfSmrg 53f71742dfSmrg if test_run 54f71742dfSmrg test_bin = executable(test_name, test_source, 55f71742dfSmrg c_args: test_cflags + test_args, 56f71742dfSmrg include_directories: libepoxy_inc, 57f71742dfSmrg dependencies: [ libepoxy_dep, x11_dep, egl_dep, dl_dep ], 58f71742dfSmrg link_with: egl_common_lib, 59f71742dfSmrg link_args: '-rdynamic') 60f71742dfSmrg test(test_name, test_bin) 61f71742dfSmrg endif 62f71742dfSmrg endforeach 63f71742dfSmrgendif 64f71742dfSmrg 65f71742dfSmrgif build_glx 66f71742dfSmrg glx_common_sources = [ 'glx_common.h', 'glx_common.c', ] 67f71742dfSmrg glx_common_lib = static_library('glx_common', 68f71742dfSmrg sources: glx_common_sources, 69f71742dfSmrg dependencies: libepoxy_dep, 70f71742dfSmrg include_directories: libepoxy_inc, 71f71742dfSmrg c_args: common_cflags, 72f71742dfSmrg install: false) 73f71742dfSmrg 74f71742dfSmrg # glx_beginend links directly with the GL library, so we need to check it 75f71742dfSmrg # separately 76f71742dfSmrg test('glx_beginend', executable('glx_beginend', 'glx_beginend.c', 77f71742dfSmrg c_args: test_cflags, 78f71742dfSmrg include_directories: libepoxy_inc, 79f71742dfSmrg dependencies: [ libepoxy_dep, x11_dep, gl_dep, dl_dep ], 80f71742dfSmrg link_with: glx_common_lib)) 81f71742dfSmrg 82f71742dfSmrg glx_tests = [ 83f71742dfSmrg [ 'glx_public_api', [ 'glx_public_api.c' ], [], [], true ], 84f71742dfSmrg [ 'glx_public_api_core', [ 'glx_public_api_core.c' ], [], [], true ], 85f71742dfSmrg [ 'glx_glxgetprocaddress_nocontext', [ 'glx_glxgetprocaddress_nocontext.c' ], [], [], true ], 86f71742dfSmrg [ 'glx_has_extension_nocontext', [ 'glx_has_extension_nocontext.c' ], [], [], true ], 87f71742dfSmrg [ 'glx_static', [ 'glx_static.c' ], [ '-DNEEDS_TO_BE_STATIC'], [ '-static' ], libtype == 'static' ], 88f71742dfSmrg [ 'glx_shared_znow', [ 'glx_static.c', ], [], [ '-Wl,-z,now' ], has_znow ], 89f71742dfSmrg [ 'glx_alias_prefer_same_name', [ 'glx_alias_prefer_same_name.c', 'dlwrap.c', 'dlwrap.h' ], [], [ '-rdynamic' ], not build_apple ], 90f71742dfSmrg [ 'glx_gles2', [ 'glx_gles2.c', 'dlwrap.c', 'dlwrap.h' ], [], [ '-rdynamic' ], not build_apple ], 91f71742dfSmrg ] 92f71742dfSmrg 93f71742dfSmrg foreach test: glx_tests 94f71742dfSmrg test_name = test[0] 95f71742dfSmrg test_source = test[1] 96f71742dfSmrg test_c_args = test[2] 97f71742dfSmrg test_link_args = test[3] 98f71742dfSmrg test_run = test[4] 99f71742dfSmrg 100f71742dfSmrg if test_run 101f71742dfSmrg test_bin = executable(test_name, test_source, 102f71742dfSmrg c_args: test_cflags + test_c_args, 103f71742dfSmrg include_directories: libepoxy_inc, 104f71742dfSmrg dependencies: [ libepoxy_dep, x11_dep, dl_dep ], 105f71742dfSmrg link_with: glx_common_lib, 106f71742dfSmrg link_args: test_link_args) 107f71742dfSmrg test(test_name, test_bin) 108f71742dfSmrg endif 109f71742dfSmrg endforeach 110f71742dfSmrg 111f71742dfSmrg if not build_apple 112f71742dfSmrg # GLX/EGL tests 113f71742dfSmrg if build_egl 114f71742dfSmrg glx_egl_sources = [ 115f71742dfSmrg 'egl_and_glx_different_pointers.c', 116f71742dfSmrg 'dlwrap.c', 117f71742dfSmrg 'dlwrap.h', 118f71742dfSmrg ] 119f71742dfSmrg 120f71742dfSmrg glx_egl_deps = [ libepoxy_dep, x11_dep, dl_dep ] 121f71742dfSmrg glx_egl_link_flags = [ '-rdynamic' ] 122f71742dfSmrg glx_egl_link_with = [ glx_common_lib, egl_common_lib ] 123f71742dfSmrg 124f71742dfSmrg glx_egl_tests = [ 125f71742dfSmrg [ 'egl_and_glx_different_pointers_glx', [ '-DUSE_GLX' ], false ], 126f71742dfSmrg [ 'egl_and_glx_different_pointers_egl', [ '-DUSE_EGL' ], false ], 127f71742dfSmrg [ 'egl_and_glx_different_pointers_egl_glx', [ '-DUSE_EGL', '-DUSE_GLX' ], true ], 128f71742dfSmrg ] 129f71742dfSmrg 130f71742dfSmrg foreach test: glx_egl_tests 131f71742dfSmrg test_name = test[0] 132f71742dfSmrg test_c_args = test[1] 133f71742dfSmrg test_should_fail = test[2] 134f71742dfSmrg 135f71742dfSmrg test_bin = executable(test_name, glx_egl_sources, 136f71742dfSmrg c_args: common_cflags + test_c_args, 137f71742dfSmrg include_directories: libepoxy_inc, 138f71742dfSmrg dependencies: glx_egl_deps, 139f71742dfSmrg link_with: glx_egl_link_with, 140f71742dfSmrg link_args: glx_egl_link_flags) 141f71742dfSmrg test(test_name, test_bin, should_fail: test_should_fail) 142f71742dfSmrg endforeach 143f71742dfSmrg endif 144f71742dfSmrg endif 145f71742dfSmrgendif 146f71742dfSmrg 147f71742dfSmrg# WGL 148f71742dfSmrgif build_wgl 149f71742dfSmrg wgl_common_sources = [ 'wgl_common.h', 'wgl_common.c', ] 150f71742dfSmrg wgl_common_lib = static_library('wgl_common', 151f71742dfSmrg sources: wgl_common_sources, 152f71742dfSmrg dependencies: libepoxy_dep, 153f71742dfSmrg include_directories: libepoxy_inc, 154f71742dfSmrg c_args: common_cflags, 155f71742dfSmrg install: false) 156f71742dfSmrg 157f71742dfSmrg wgl_tests = [ 158f71742dfSmrg [ 'wgl_core_and_exts', [ 'wgl_core_and_exts.c' ], [], ], 159f71742dfSmrg [ 'wgl_per_context_funcptrs', [ 'wgl_per_context_funcptrs.c' ], [], ], 160f71742dfSmrg [ 'wgl_usefontbitmaps', [ 'wgl_usefontbitmaps.c'], [], ], 161f71742dfSmrg [ 'wgl_usefontbitmaps_unicode', [ 'wgl_usefontbitmaps.c' ], [ '-DUNICODE' ], ], 162f71742dfSmrg ] 163f71742dfSmrg 164f71742dfSmrg foreach test: wgl_tests 165f71742dfSmrg test_name = test[0] 166f71742dfSmrg test_source = test[1] 167f71742dfSmrg test_c_args = test[2] 168f71742dfSmrg 169f71742dfSmrg test_bin = executable(test_name, test_source, 170f71742dfSmrg c_args: test_cflags + test_c_args, 171f71742dfSmrg include_directories: libepoxy_inc, 172f71742dfSmrg dependencies: [ libepoxy_dep ], 173f71742dfSmrg link_with: wgl_common_lib) 174f71742dfSmrg 175f71742dfSmrg test(test_name, test_bin) 176f71742dfSmrg endforeach 177f71742dfSmrgendif 178