Edit

IABSD.fr/xenocara/dist/libepoxy/test/meson.build

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2020-01-26 13:45:49
    Hash : f3fa3831
    Message : Update to libepoxy 1.5.4. ok jsg@

  • dist/libepoxy/test/meson.build
  • dl_dep = cc.find_library('dl', required: false)
    has_dlvsym = cc.has_function('dlvsym', dependencies: dl_dep)
    
    has_gles1 = gles1_dep.found()
    has_gles2 = gles2_dep.found()
    build_x11_tests = enable_x11 and x11_dep.found()
    
    test_cflags = common_cflags
    if not has_dlvsym
    test_cflags += [
      '-D_XOPEN_SOURCE',
      '-D_POSIX_C_SOURCE=200809L',
    ]
    endif
    
    # Unconditionally built tests
    test('header_guards',
         executable('header guards', 'headerguards.c',
                    c_args: common_cflags,
                    dependencies: libepoxy_dep,
                    include_directories: libepoxy_inc))
    test('misc_defines',
         executable('misc defines', 'miscdefines.c',
                    c_args: common_cflags,
                    dependencies: libepoxy_dep,
                    include_directories: libepoxy_inc))
    test('khronos_typedefs',
         executable('khronos typedefs', [
                      'khronos_typedefs.c',
                      'khronos_typedefs.h',
                      'khronos_typedefs_nonepoxy.c',
                    ],
                    c_args: common_cflags,
                    dependencies: libepoxy_dep,
                    include_directories: libepoxy_inc))
    test('gl_version',
         executable('gl_version',
                    'gl_version.c',
                    c_args: common_cflags,
                    dependencies: libepoxy_dep,
                    include_directories: libepoxy_inc))
    
    if build_egl and build_x11_tests
      egl_common_sources = [ 'egl_common.h', 'egl_common.c', ]
      egl_common_lib = static_library('egl_common',
                                      sources: egl_common_sources,
                                      dependencies: libepoxy_dep,
                                      include_directories: libepoxy_inc,
                                      c_args: common_cflags,
                                      install: false)
    
      egl_tests = [
        [ 'egl_has_extension_nocontext', [], [ 'egl_has_extension_nocontext.c' ], true, ],
        [ 'egl_epoxy_api', [], [ 'egl_epoxy_api.c' ], true ],
        [ 'egl_gles1_without_glx', [ '-DGLES_VERSION=1', ], [ 'egl_without_glx.c' ], has_gles1, ],
        [ 'egl_gles2_without_glx', [ '-DGLES_VERSION=2', ], [ 'egl_without_glx.c' ], has_gles2, ],
      ]
    
      if build_glx
        egl_tests += [
          [ 'egl_gl', [], [ 'egl_gl.c' ], true, ],
        ]
      endif
    
      foreach test: egl_tests
        test_name = test[0]
        test_source = test[2]
        test_args = test[1]
        test_run = test[3]
    
        if test_run
          test_bin = executable(test_name, test_source,
                                c_args: test_cflags + test_args,
                                include_directories: libepoxy_inc,
                                dependencies: [ libepoxy_dep, x11_dep, egl_dep, dl_dep ],
                                link_with: egl_common_lib,
                                link_args: '-rdynamic')
          test(test_name, test_bin)
        endif
      endforeach
    endif
    
    if build_glx and build_x11_tests
      glx_common_sources = [ 'glx_common.h', 'glx_common.c', ]
      glx_common_lib = static_library('glx_common',
                                      sources: glx_common_sources,
                                      dependencies: libepoxy_dep,
                                      include_directories: libepoxy_inc,
                                      c_args: common_cflags,
                                      install: false)
    
      # glx_beginend links directly with the GL library, so we need to check it
      # separately
      test('glx_beginend', executable('glx_beginend', 'glx_beginend.c',
                                      c_args: test_cflags,
                                      include_directories: libepoxy_inc,
                                      dependencies: [ libepoxy_dep, x11_dep, gl_dep, dl_dep ],
                                      link_with: glx_common_lib))
    
      glx_tests = [
        [ 'glx_public_api', [ 'glx_public_api.c' ], [], [], true ],
        [ 'glx_public_api_core', [ 'glx_public_api_core.c' ], [], [], true ],
        [ 'glx_glxgetprocaddress_nocontext', [ 'glx_glxgetprocaddress_nocontext.c' ], [], [], true ],
        [ 'glx_has_extension_nocontext', [ 'glx_has_extension_nocontext.c' ], [], [], true ],
        [ 'glx_static', [ 'glx_static.c' ], [ '-DNEEDS_TO_BE_STATIC'], [ '-static' ], libtype == 'static' ],
        [ 'glx_shared_znow', [ 'glx_static.c', ], [], [ '-Wl,-z,now' ], has_znow ],
        [ 'glx_alias_prefer_same_name', [ 'glx_alias_prefer_same_name.c', 'dlwrap.c', 'dlwrap.h' ], [], [ '-rdynamic' ], has_dlvsym ],
        [ 'glx_gles2', [ 'glx_gles2.c', 'dlwrap.c', 'dlwrap.h' ], [], [ '-rdynamic' ], has_dlvsym ],
      ]
    
      foreach test: glx_tests
        test_name = test[0]
        test_source = test[1]
        test_c_args = test[2]
        test_link_args = test[3]
        test_run = test[4]
    
        if test_run
          test_bin = executable(test_name, test_source,
                                c_args: test_cflags + test_c_args,
                                include_directories: libepoxy_inc,
                                dependencies: [ libepoxy_dep, x11_dep, dl_dep ],
                                link_with: glx_common_lib,
                                link_args: test_link_args)
          test(test_name, test_bin)
        endif
      endforeach
    endif
    
    # WGL
    if build_wgl
      wgl_common_sources = [ 'wgl_common.h', 'wgl_common.c', ]
      wgl_common_lib = static_library('wgl_common',
                                      sources: wgl_common_sources,
                                      dependencies: libepoxy_dep,
                                      include_directories: libepoxy_inc,
                                      c_args: common_cflags,
                                      install: false)
    
      wgl_tests = [
        [ 'wgl_core_and_exts', [ 'wgl_core_and_exts.c' ], [], ],
        [ 'wgl_per_context_funcptrs', [ 'wgl_per_context_funcptrs.c' ], [], ],
        [ 'wgl_usefontbitmaps', [ 'wgl_usefontbitmaps.c'], [], ],
        [ 'wgl_usefontbitmaps_unicode', [ 'wgl_usefontbitmaps.c' ], [ '-DUNICODE' ], ],
      ]
    
      foreach test: wgl_tests
        test_name = test[0]
        test_source = test[1]
        test_c_args = test[2]
    
        test_bin = executable(test_name, test_source,
                              c_args: test_cflags + test_c_args,
                              include_directories: libepoxy_inc,
                              dependencies: [ libepoxy_dep ],
                              link_with: wgl_common_lib)
    
        test(test_name, test_bin)
      endforeach
    endif
    
    # Apple
    if host_machine.system().contains('darwin')
      opengl_dep = dependency('appleframeworks', modules: ['OpenGL', 'Carbon'], required: true)
    
      cgl_tests = [
        [ 'cgl_core', [ 'cgl_core.c' ] ],
        [ 'cgl_epoxy_api', [ 'cgl_epoxy_api.c' ] ],
      ]
    
      foreach t: cgl_tests
        test_name = t[0]
        test_sources = t[1]
    
        test(test_name,
          executable(
            test_name, test_sources,
            c_args: test_cflags,
            include_directories: libepoxy_inc,
            dependencies: [ libepoxy_dep, opengl_dep ],
          ),
        )
      endforeach
    endif