aboutsummaryrefslogtreecommitdiff
path: root/src/meson.build
blob: a1da5a631d33969850cfbf3f0967e1749272e7de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
libev = dependency('libev', required: false)
if not libev.found()
	libev = cc.find_library('ev')
endif
base_deps = [
	cc.find_library('m'),
	libev
]

srcs = [ files('compfy.c', 'win.c', 'c2.c', 'x.c', 'config.c', 'vsync.c', 'utils.c',
               'diagnostic.c', 'string_utils.c', 'render.c', 'kernel.c', 'log.c',
               'options.c', 'event.c', 'cache.c', 'atom.c', 'file_watch.c', 'update.c') ]
compfy_inc = include_directories('.')

cflags = []

required_xcb_packages = [
	'xcb-render', 'xcb-damage', 'xcb-randr', 'xcb-sync', 'xcb-composite',
	'xcb-shape', 'xcb-xinerama', 'xcb-xfixes', 'xcb-present', 'xcb-glx', 'xcb'
]

required_packages = [
	'x11', 'x11-xcb', 'xcb-renderutil', 'xcb-image', 'xext', 'pixman-1'
]

foreach i : required_packages
	base_deps += [dependency(i, required: true)]
endforeach

foreach i : required_xcb_packages
	base_deps += [dependency(i, version: '>=1.12.0', required: true)]
endforeach

if not cc.has_header('uthash.h')
  error('Dependency uthash not found')
endif

deps = []

if get_option('update_checks')
	cflags += ['-DCONFIG_UPDATES']
	deps += [dependency('json-c', required: true), dependency('libcurl', required: true)]
endif

if get_option('config_file')
	deps += [dependency('libconfig', version: '>=1.4', required: true)]

	cflags += ['-DCONFIG_LIBCONFIG']
	srcs += [ 'config_libconfig.c' ]
endif
if get_option('regex')
	pcre = dependency('libpcre2-8', required: true)
	cflags += ['-DCONFIG_REGEX_PCRE']
	deps += [pcre]
endif

if get_option('vsync_drm')
	cflags += ['-DCONFIG_VSYNC_DRM']
	deps += [dependency('libdrm', required: true)]
endif

if get_option('opengl')
	cflags += ['-DCONFIG_OPENGL', '-DGL_GLEXT_PROTOTYPES']
	deps += [dependency('gl', required: true), dependency('egl', required: true)]
	srcs += [ 'opengl.c' ]
endif

if get_option('dbus')
	cflags += ['-DCONFIG_DBUS']
	deps += [dependency('dbus-1', required: true)]
	srcs += [ 'dbus.c' ]
endif

if get_option('xrescheck')
	cflags += ['-DDEBUG_XRC']
	srcs += [ 'xrescheck.c' ]
endif

if get_option('unittest')
	cflags += ['-DUNIT_TEST']
endif

host_system = host_machine.system()
if host_system == 'linux'
	cflags += ['-DHAS_INOTIFY']
elif (host_system == 'freebsd' or host_system == 'netbsd' or
      host_system == 'dragonfly' or host_system == 'openbsd')
	cflags += ['-DHAS_KQUEUE']
endif

subdir('backend')

compfy = executable('compfy', srcs, c_args: cflags,
  dependencies: [ base_deps, deps ],
  install: true, include_directories: compfy_inc)

if get_option('unittest')
	test('compfy unittest', compfy, args: [ '--unittest' ])
endif