meson.build revision f71742df
1f71742dfSmrg# Configuration file
2f71742dfSmrgconfigure_file(output: 'config.h', configuration: conf)
3f71742dfSmrg
4f71742dfSmrg# List of generated sources:
5f71742dfSmrg#   - name of the generated file
6f71742dfSmrg#   - registry source file
7f71742dfSmrg#   - additional sources
8f71742dfSmrggenerated_sources = [
9f71742dfSmrg  [ 'gl_generated_dispatch.c', gl_registry, [ 'dispatch_common.c', 'dispatch_common.h' ] ]
10f71742dfSmrg]
11f71742dfSmrg
12f71742dfSmrgif build_egl
13f71742dfSmrg  generated_sources += [ [ 'egl_generated_dispatch.c', egl_registry, 'dispatch_egl.c' ] ]
14f71742dfSmrgendif
15f71742dfSmrg
16f71742dfSmrgif build_glx
17f71742dfSmrg  generated_sources += [ [ 'glx_generated_dispatch.c', glx_registry, 'dispatch_glx.c' ] ]
18f71742dfSmrgendif
19f71742dfSmrg
20f71742dfSmrgif build_wgl
21f71742dfSmrg  generated_sources += [ [ 'wgl_generated_dispatch.c', wgl_registry, 'dispatch_wgl.c' ] ]
22f71742dfSmrgendif
23f71742dfSmrg
24f71742dfSmrggen_sources = [ ]
25f71742dfSmrgsources = [ ]
26f71742dfSmrg
27f71742dfSmrgforeach g: generated_sources
28f71742dfSmrg  gen_source = g[0]
29f71742dfSmrg  registry = g[1]
30f71742dfSmrg  source = g[2]
31f71742dfSmrg
32f71742dfSmrg  generated = custom_target(gen_source,
33f71742dfSmrg                            input: registry,
34f71742dfSmrg                            output: [ gen_source ],
35f71742dfSmrg                            command: [
36f71742dfSmrg                              python,
37f71742dfSmrg                              gen_dispatch_py,
38f71742dfSmrg                              '--source',
39f71742dfSmrg                              '--no-header',
40f71742dfSmrg                              '--outputdir=@OUTDIR@',
41f71742dfSmrg                              '@INPUT@',
42f71742dfSmrg                            ])
43f71742dfSmrg
44f71742dfSmrg  gen_sources += [ generated ]
45f71742dfSmrg  sources += [ source ]
46f71742dfSmrgendforeach
47f71742dfSmrg
48f71742dfSmrgepoxy_sources = sources + gen_sources
49f71742dfSmrg
50f71742dfSmrgcommon_ldflags = []
51f71742dfSmrg
52f71742dfSmrgif host_system == 'linux'
53f71742dfSmrg  foreach f: [ '-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now', ]
54f71742dfSmrg    if cc.has_argument(f)
55f71742dfSmrg      common_ldflags += f
56f71742dfSmrg    endif
57f71742dfSmrg  endforeach
58f71742dfSmrgendif
59f71742dfSmrg
60f71742dfSmrg# Maintain compatibility with autotools; see: https://github.com/anholt/libepoxy/issues/108
61f71742dfSmrgif host_system == 'darwin'
62f71742dfSmrg  common_ldflags += [ '-compatibility_version=1', '-current_version=1.0', ]
63f71742dfSmrgendif
64f71742dfSmrg
65f71742dfSmrgepoxy_deps = [ dl_dep, ]
66f71742dfSmrgif host_system == 'windows'
67f71742dfSmrg  epoxy_deps += [ opengl32_dep, gdi32_dep ]
68f71742dfSmrgendif
69f71742dfSmrg
70f71742dfSmrg# Allow building a static version of epoxy
71f71742dfSmrgif libtype != 'shared'
72f71742dfSmrg  libepoxy_static = static_library('epoxy',
73f71742dfSmrg                                   sources: epoxy_sources + epoxy_headers,
74f71742dfSmrg                                   install: true,
75f71742dfSmrg                                   dependencies: epoxy_deps,
76f71742dfSmrg                                   include_directories: libepoxy_inc,
77f71742dfSmrg                                   c_args: common_cflags + visibility_cflags,
78f71742dfSmrg                                   link_args: common_ldflags)
79f71742dfSmrg  libepoxy = libepoxy_static
80f71742dfSmrgendif
81f71742dfSmrg
82f71742dfSmrgif libtype != 'static'
83f71742dfSmrg  libepoxy_shared = shared_library('epoxy',
84f71742dfSmrg                                   sources: epoxy_sources + epoxy_headers,
85f71742dfSmrg                                   version: '0.0.0',
86f71742dfSmrg                                   install: true,
87f71742dfSmrg                                   dependencies: epoxy_deps,
88f71742dfSmrg                                   include_directories: libepoxy_inc,
89f71742dfSmrg                                   c_args: common_cflags + visibility_cflags,
90f71742dfSmrg                                   link_args: common_ldflags)
91f71742dfSmrg  libepoxy = libepoxy_shared
92f71742dfSmrgendif
93f71742dfSmrg
94f71742dfSmrglibepoxy_dep = declare_dependency(link_with: libepoxy,
95f71742dfSmrg                                  include_directories: libepoxy_inc,
96f71742dfSmrg                                  dependencies: epoxy_deps,
97f71742dfSmrg                                  sources: epoxy_headers)
98