summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu@centricular.com>2018-05-21 20:08:22 +0200
committerTim-Philipp Müller <tim@centricular.com>2020-07-31 12:21:50 +0100
commit596a82f2d185b101bd74645492821fe2f9e0daa0 (patch)
tree3a595c888df37054bebb989455e73ea3683c6477 /util
parenta75f8df95761bf88b54c326c5312117ea5073010 (diff)
downloadcairo-596a82f2d185b101bd74645492821fe2f9e0daa0.tar.gz
Add meson build definitions
Co-Authored by: Nirbheek Chauhan <nirbheek@centricular.com> lb90 <luca.bacci982@gmail.com> Tim-Philipp Müller <tim@centricular.com>
Diffstat (limited to 'util')
-rw-r--r--util/cairo-fdr/meson.build11
-rw-r--r--util/cairo-gobject/meson.build25
-rw-r--r--util/cairo-missing/meson.build11
-rw-r--r--util/cairo-script/meson.build65
-rw-r--r--util/cairo-sphinx/meson.build26
-rw-r--r--util/cairo-trace/meson.build30
-rw-r--r--util/meson.build66
7 files changed, 234 insertions, 0 deletions
diff --git a/util/cairo-fdr/meson.build b/util/cairo-fdr/meson.build
new file mode 100644
index 000000000..3cb66c678
--- /dev/null
+++ b/util/cairo-fdr/meson.build
@@ -0,0 +1,11 @@
+cairo_fdr_sources = [
+ 'fdr.c',
+]
+
+libcairofdr = library('cairo-fdr', cairo_fdr_sources,
+ include_directories: [incbase, incsrc],
+ c_args: ['-DHAVE_CONFIG_H'],
+ dependencies: deps,
+ install: true,
+ install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'cairo'),
+)
diff --git a/util/cairo-gobject/meson.build b/util/cairo-gobject/meson.build
new file mode 100644
index 000000000..895ba03d7
--- /dev/null
+++ b/util/cairo-gobject/meson.build
@@ -0,0 +1,25 @@
+cairo_gobject_sources = [
+ 'cairo-gobject-enums.c',
+ 'cairo-gobject-structs.c',
+]
+
+cairo_gobject_headers = [
+ 'cairo-gobject.h',
+]
+
+libcairogobject = library('cairo-gobject', cairo_gobject_sources,
+ c_args: ['-DHAVE_CONFIG_H'],
+ include_directories: [incbase, incsrc],
+ dependencies: [glib_dep, gobject_dep],
+ link_with: [libcairo],
+ soversion: '2',
+ version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
+ install: true,
+)
+
+incgobject = include_directories('.')
+
+libcairogobject_dep = declare_dependency(link_with: libcairogobject,
+ include_directories: [incbase, incgobject])
+
+install_headers(cairo_gobject_headers, subdir: 'cairo')
diff --git a/util/cairo-missing/meson.build b/util/cairo-missing/meson.build
new file mode 100644
index 000000000..db328fb1c
--- /dev/null
+++ b/util/cairo-missing/meson.build
@@ -0,0 +1,11 @@
+cairo_missing_sources = [
+ 'strndup.c',
+ 'getline.c',
+]
+
+inccairomissing = include_directories('.')
+
+libcairomissing = static_library('cairo-missing', cairo_missing_sources,
+ c_args: ['-DHAVE_CONFIG_H'],
+ include_directories: [incbase, incsrc],
+)
diff --git a/util/cairo-script/meson.build b/util/cairo-script/meson.build
new file mode 100644
index 000000000..f1be1f193
--- /dev/null
+++ b/util/cairo-script/meson.build
@@ -0,0 +1,65 @@
+cairoscript_interpreter_sources = [
+ 'cairo-script-file.c',
+ 'cairo-script-hash.c',
+ 'cairo-script-interpreter.c',
+ 'cairo-script-objects.c',
+ 'cairo-script-operators.c',
+ 'cairo-script-scanner.c',
+ 'cairo-script-stack.c',
+]
+
+cairoscript_interpreter_headers = [
+ 'cairo-script-interpreter.h',
+]
+
+csi_replay_sources = [
+ 'csi-replay.c',
+]
+
+csi_exec_sources = [
+ 'csi-exec.c',
+]
+
+csi_trace_sources = [
+ 'csi-trace.c',
+]
+
+libcairoscript = library('cairo-script', cairoscript_interpreter_sources,
+ c_args: ['-DHAVE_CONFIG_H'],
+ include_directories: [incbase, incsrc],
+ dependencies: deps,
+ link_with: [libcairo],
+ soversion: '2',
+ version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
+ install: true,
+)
+
+inccairoscript = include_directories('.')
+
+libcairoscript_dep = declare_dependency(link_with: libcairoscript,
+ include_directories: [incbase, inccairoscript])
+
+csi_replay_exe = executable('csi-replay', csi_replay_sources,
+ c_args: ['-DHAVE_CONFIG_H'],
+ include_directories: [incbase, incsrc],
+ link_with: [libcairo, libcairoscript],
+ dependencies: deps,
+)
+
+csi_exec_exe = executable('csi-exec', csi_exec_sources,
+ c_args: ['-DHAVE_CONFIG_H'],
+ include_directories: [incbase, incsrc],
+ link_with: [libcairo, libcairoscript],
+ dependencies: deps,
+)
+
+if feature_conf.get('CAIRO_HAS_SCRIPT_SURFACE', 0) == 1 and conf.get('HAVE_LIBGEN_H', 0) == 1
+ csi_trace_exe = executable('csi-trace', csi_trace_sources,
+ c_args: ['-DHAVE_CONFIG_H'],
+ include_directories: [incbase, incsrc],
+ link_with: [libcairo, libcairoscript],
+ dependencies: deps,
+ )
+endif
+
+install_headers(cairoscript_interpreter_headers, subdir: 'cairo')
diff --git a/util/cairo-sphinx/meson.build b/util/cairo-sphinx/meson.build
new file mode 100644
index 000000000..cf560aefd
--- /dev/null
+++ b/util/cairo-sphinx/meson.build
@@ -0,0 +1,26 @@
+libcairo_sphinx_sources = [
+ 'fdr.c',
+]
+
+cairo_sphinx_sources = [
+ 'sphinx.c',
+]
+
+libcairosphinx = library('cairo-sphinx', libcairo_sphinx_sources,
+ include_directories: [incbase, incsrc],
+ c_args: ['-DHAVE_CONFIG_H'],
+ dependencies: deps,
+ install: true,
+ install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'cairo'),
+)
+
+libdir = join_paths(get_option('prefix'), get_option('libdir'))
+
+cairosphinx_exe = executable('cairo-sphinx', cairo_sphinx_sources,
+ include_directories: [incbase, incsrc, inccairoscript, incboilerplate],
+ c_args: ['-DHAVE_CONFIG_H', '-DLIBDIR="@0@"'.format(libdir)] + pthread_c_args,
+ dependencies: deps + [glib_dep, rt_dep],
+ link_with: [libcairo, libcairosphinx, libcairoscript, libcairoboilerplate],
+ link_args: extra_link_args,
+ install: true,
+)
diff --git a/util/cairo-trace/meson.build b/util/cairo-trace/meson.build
new file mode 100644
index 000000000..20f2b87d6
--- /dev/null
+++ b/util/cairo-trace/meson.build
@@ -0,0 +1,30 @@
+cairo_trace_sources = [
+ 'trace.c',
+]
+
+shared_lib_ext = libcairo.full_path().split('.')[-1]
+
+libcairotrace = library('cairo-trace', cairo_trace_sources,
+ include_directories: [incbase, incsrc],
+ dependencies: deps,
+ link_args: extra_link_args,
+ c_args: ['-DSHARED_LIB_EXT="@0@"'.format(shared_lib_ext), '-DHAVE_CONFIG_H'] + pthread_c_args,
+ install: true,
+ install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'cairo'),
+)
+
+trace_conf = configuration_data()
+trace_conf.set('prefix', get_option('prefix'))
+trace_conf.set('exec_prefix', get_option('prefix'))
+trace_conf.set('libdir', get_option('prefix') / get_option('libdir'))
+trace_conf.set('CAIRO_VERSION_MAJOR', meson.project_version().split('.')[0])
+trace_conf.set('CAIRO_VERSION_MINOR', meson.project_version().split('.')[1])
+trace_conf.set('CAIRO_VERSION_MICRO', meson.project_version().split('.')[2])
+trace_conf.set('SHLIB_EXT', shared_lib_ext)
+
+configure_file(input: 'cairo-trace.in',
+ output: 'cairo-trace',
+ configuration: trace_conf,
+ install: true,
+ install_dir: join_paths(get_option('prefix'), get_option('bindir')),
+)
diff --git a/util/meson.build b/util/meson.build
new file mode 100644
index 000000000..3f16d7c78
--- /dev/null
+++ b/util/meson.build
@@ -0,0 +1,66 @@
+subdir('cairo-missing')
+
+cairo_utils = []
+
+if feature_conf.get('CAIRO_HAS_GOBJECT_FUNCTIONS', 0) == 1
+ subdir('cairo-gobject')
+endif
+
+if feature_conf.get('CAIRO_HAS_INTERPRETER', 0) == 1
+ subdir('cairo-script')
+endif
+
+if conf.get('CAIRO_HAS_TRACE', 0) == 1
+ subdir('cairo-trace')
+
+ if (conf.get('CAIRO_HAS_DLSYM', 0) == 1 and
+ feature_conf.get('CAIRO_HAS_SCRIPT_SURFACE', 0) == 1 and
+ feature_conf.get('CAIRO_HAS_TEE_SURFACE', 0) == 1)
+ subdir('cairo-fdr')
+ endif
+endif
+
+if (glib_dep.found() and
+ png_dep.found() and
+ host_machine.system() != 'windows' and
+ conf.get('CAIRO_HAS_DLSYM', 0) == 1 and
+ feature_conf.get('CAIRO_HAS_SCRIPT_SURFACE', 0) == 1 and
+ feature_conf.get('CAIRO_HAS_TEE_SURFACE', 0) == 1)
+ subdir('cairo-sphinx')
+endif
+
+if gtk_dep.found()
+ cairo_utils += [
+ ['show-contour.c', {'deps': [gtk_dep]}],
+ ['show-traps.c', {'deps': [gtk_dep]}],
+ ['show-edges.c', {'deps': [gtk_dep]}],
+ ['show-polygon.c', {'deps': [gtk_dep]}],
+ ['show-events.c', {'deps': [gtk_dep]}],
+ ['font-view.c', {'deps': [gtk_dep]}],
+ ]
+endif
+
+if feature_conf.get('CAIRO_HAS_INTERPRETER', 0) == 1
+ expat_dep = dependency('expat', fallback: ['expat', 'expat_dep'])
+ cairo_utils += [
+ ['trace-to-xml.c', {'deps': [expat_dep]}],
+ ['xml-to-trace.c', {'deps': [expat_dep]}],
+ ]
+endif
+
+foreach util : cairo_utils
+ exe_name = util[0].split('.')[0]
+ util_deps = util.get(1, {}).get('deps', [])
+ executable(exe_name, util[0],
+ include_directories: [incbase, incsrc, inccairoscript],
+ dependencies: deps + util_deps,
+ link_with: [libcairo, libcairoscript],
+ )
+endforeach
+
+# This is useless and doesn't build on Windows
+if host_machine.system() != 'windows'
+ libmallocstats = library('malloc-stats', 'malloc-stats.c')
+endif
+
+# backtrace-symbols does not build