diff --git a/include/epoxy/meson.build b/include/epoxy/meson.build index 809b92c..12ae719 100644 --- a/include/epoxy/meson.build +++ b/include/epoxy/meson.build @@ -1,82 +1,42 @@ headers = [ 'common.h' ] -gl_generated = custom_target('gl_generated.h', - input: gl_registry, - output: [ - 'gl_generated.h', - ], - command: [ - python, - gen_dispatch_py, - '--header', - '--no-source', - '--outputdir=@OUTDIR@', - '@INPUT@' - ], - install: true, - install_dir: join_paths(epoxy_includedir, 'epoxy')) - -gen_headers = [ gl_generated ] -headers += [ 'gl.h', ] +# GL is always generated +generated_headers = [ [ 'gl.h', 'gl_generated.h', gl_registry ] ] if build_egl - egl_generated = custom_target('egl_generated.h', - input: egl_registry, - output: [ - 'egl_generated.h', - ], - command: [ - python, - gen_dispatch_py, - '--header', - '--no-source', - '--outputdir=@OUTDIR@', - '@INPUT@' - ], - install: true, - install_dir: join_paths(epoxy_includedir, 'epoxy')) - gen_headers += [ egl_generated ] - headers += [ 'egl.h' ] + generated_headers += [ [ 'egl.h', 'egl_generated.h', egl_registry ] ] endif if build_glx - glx_generated = custom_target('glx_generated.h', - input: glx_registry, - output: [ - 'glx_generated.h', - ], - command: [ - python, - gen_dispatch_py, - '--header', - '--no-source', - '--outputdir=@OUTDIR@', - '@INPUT@' - ], - install: true, - install_dir: join_paths(epoxy_includedir, 'epoxy')) - gen_headers += [ glx_generated ] - headers += [ 'glx.h' ] + generated_headers += [ [ 'glx.h', 'glx_generated.h', glx_registry ] ] endif if build_wgl - wgl_generated = custom_target('wgl_generated.h', - input: wgl_registry, - output: [ - 'wgl_generated.h', - ], - command: [ - python, - gen_dispatch_py, - '--header', - '--no-source', - '--outputdir=@OUTDIR@', - '@INPUT@' - ], - install: true, - install_dir: join_paths(epoxy_includedir, 'epoxy')) - gen_headers += [ wgl_generated ] - headers += [ 'wgl.h' ] + generated_headers += [ [ 'wgl.h', 'wgl_generated.h', wgl_registry ] ] endif +gen_headers = [] + +foreach g: generated_headers + header = g[0] + gen_header = g[1] + registry = g[2] + generated = custom_target(gen_header, + input: registry, + output: [ gen_header ], + command: [ + python, + gen_dispatch_py, + '--header', + '--no-source', + '--outputdir=@OUTDIR@', + '@INPUT@', + ], + install: true, + install_dir: join_paths(epoxy_includedir, 'epoxy')) + + gen_headers += [ generated ] + headers += [ header ] +endforeach + install_headers(headers, subdir: 'epoxy') diff --git a/src/meson.build b/src/meson.build index fced355..3610af3 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,83 +1,51 @@ -common_sources = [ - 'dispatch_common.c', - 'dispatch_common.h', -] - # Configuration file configure_file(output: 'config.h', configuration: conf) -gl_generated = custom_target('gl_generated_dispatch.c', - input: gl_registry, - output: [ - 'gl_generated_dispatch.c', - ], - command: [ - python, - gen_dispatch_py, - '--source', - '--no-header', - '--outputdir=@OUTDIR@', - '@INPUT@', - ]) - -gen_sources = [ gl_generated ] -sources = common_sources +# List of generated sources: +# - name of the generated file +# - registry source file +# - additional sources +generated_sources = [ + [ 'gl_generated_dispatch.c', gl_registry, [ 'dispatch_common.c', 'dispatch_common.h' ] ] +] if build_egl - egl_generated = custom_target('egl_generated_dispatch.c', - input: egl_registry, - output: [ - 'egl_generated_dispatch.c', - ], - command: [ - python, - gen_dispatch_py, - '--source', - '--no-header', - '--outputdir=@OUTDIR@', - '@INPUT@', - ]) - gen_sources += [ egl_generated ] - sources += [ 'dispatch_egl.c' ] + generated_sources += [ [ 'egl_generated_dispatch.c', egl_registry, 'dispatch_egl.c' ] ] endif if build_glx - glx_generated = custom_target('glx_generated_dispatch.c', - input: glx_registry, - output: [ - 'glx_generated_dispatch.c', - ], - command: [ - python, - gen_dispatch_py, - '--source', - '--no-header', - '--outputdir=@OUTDIR@', - '@INPUT@', - ]) - gen_sources += [ glx_generated ] - sources += [ 'dispatch_glx.c' ] + generated_sources += [ [ 'glx_generated_dispatch.c', glx_registry, 'dispatch_glx.c' ] ] endif if build_wgl - wgl_generated = custom_target('wgl_generated_dispatch.c', - input: wgl_registry, - output: [ - 'wgl_generated_dispatch.c', - ], - command: [ - python, - gen_dispatch_py, - '--source', - '--no-header', - '--outputdir=@OUTDIR@', - '@INPUT@', - ]) - gen_sources += [ wgl_generated ] - sources += [ 'dispatch_wgl.c' ] + generated_sources += [ [ 'wgl_generated_dispatch.c', wgl_registry, 'dispatch_wgl.c' ] ] endif -epoxy_sources = common_sources + sources + gen_sources +gen_sources = [ ] +sources = [ ] + +foreach g: generated_sources + gen_source = g[0] + registry = g[1] + source = g[2] + + generated = custom_target(gen_source, + input: registry, + output: [ gen_source ], + command: [ + python, + gen_dispatch_py, + '--source', + '--no-header', + '--outputdir=@OUTDIR@', + '@INPUT@', + ]) + + gen_sources += [ generated ] + sources += [ source ] +endforeach + +epoxy_sources = sources + gen_sources epoxy_headers = gen_headers foreach h: headers epoxy_headers += join_paths(meson.source_root(), 'include/epoxy/@0@'.format(h))