diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2017-03-01 12:36:00 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2017-03-01 12:36:00 +0000 |
commit | 3eaddbef62ae83561417e6216cc72eeba98162f2 (patch) | |
tree | 00386f9fb7235747c3a59b2daad34c83d1f65079 /include | |
parent | d6c4784401f613f410198926535b0462aa2dc13e (diff) | |
download | libepoxy-3eaddbef62ae83561417e6216cc72eeba98162f2.tar.gz |
Simplify the code generation rules for Meson
The code generation rules are explicitly built for each supported API
target, but they ought to be refactored since they are pretty much
identical.
In order to do that, we can store the arguments to the custom_target
rules inside an array and then iterate over each element.
This cuts down the complexity of the Meson build, and the chances of
getting something wrong due to duplication.
Diffstat (limited to 'include')
-rw-r--r-- | include/epoxy/meson.build | 98 |
1 files changed, 29 insertions, 69 deletions
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') |