diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2018-05-21 20:08:22 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2020-07-31 12:21:50 +0100 |
commit | 596a82f2d185b101bd74645492821fe2f9e0daa0 (patch) | |
tree | 3a595c888df37054bebb989455e73ea3683c6477 /util | |
parent | a75f8df95761bf88b54c326c5312117ea5073010 (diff) | |
download | cairo-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.build | 11 | ||||
-rw-r--r-- | util/cairo-gobject/meson.build | 25 | ||||
-rw-r--r-- | util/cairo-missing/meson.build | 11 | ||||
-rw-r--r-- | util/cairo-script/meson.build | 65 | ||||
-rw-r--r-- | util/cairo-sphinx/meson.build | 26 | ||||
-rw-r--r-- | util/cairo-trace/meson.build | 30 | ||||
-rw-r--r-- | util/meson.build | 66 |
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 |